LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/X86 - X86GenGlobalISel.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 132 168 78.6 %
Date: 2018-07-13 00:08:38 Functions: 5 8 62.5 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* Global Instruction Selector for the X86 target                             *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : #ifdef GET_GLOBALISEL_PREDICATE_BITSET
      10             : const unsigned MAX_SUBTARGET_PREDICATES = 114;
      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(X86InstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
      17             :   typedef void(X86InstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr&) const;
      18             :   const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ISelInfo;
      19             :   static X86InstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[];
      20             :   static X86InstructionSelector::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       45748 : 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_TruePredicateBit = 48,
      37             :   Feature_HasCMovBit = 21,
      38             :   Feature_NoCMovBit = 100,
      39             :   Feature_HasMMXBit = 81,
      40             :   Feature_Has3DNowBit = 83,
      41             :   Feature_HasSSE1Bit = 35,
      42             :   Feature_UseSSE1Bit = 41,
      43             :   Feature_HasSSE2Bit = 36,
      44             :   Feature_UseSSE2Bit = 42,
      45             :   Feature_HasSSE3Bit = 27,
      46             :   Feature_UseSSE3Bit = 51,
      47             :   Feature_HasSSSE3Bit = 82,
      48             :   Feature_UseSSSE3Bit = 52,
      49             :   Feature_NoSSE41Bit = 103,
      50             :   Feature_UseSSE41Bit = 49,
      51             :   Feature_HasSSE42Bit = 56,
      52             :   Feature_UseSSE42Bit = 55,
      53             :   Feature_HasSSE4ABit = 65,
      54             :   Feature_NoAVXBit = 61,
      55             :   Feature_HasAVXBit = 43,
      56             :   Feature_HasAVX2Bit = 39,
      57             :   Feature_HasAVX1OnlyBit = 37,
      58             :   Feature_HasAVX512Bit = 69,
      59             :   Feature_UseAVXBit = 40,
      60             :   Feature_UseAVX2Bit = 67,
      61             :   Feature_NoAVX512Bit = 32,
      62             :   Feature_HasCDIBit = 73,
      63             :   Feature_HasVPOPCNTDQBit = 77,
      64             :   Feature_HasERIBit = 76,
      65             :   Feature_HasDQIBit = 71,
      66             :   Feature_NoDQIBit = 53,
      67             :   Feature_HasBWIBit = 72,
      68             :   Feature_NoBWIBit = 50,
      69             :   Feature_HasVLXBit = 70,
      70             :   Feature_NoVLXBit = 31,
      71             :   Feature_NoVLX_Or_NoBWIBit = 47,
      72             :   Feature_NoVLX_Or_NoDQIBit = 105,
      73             :   Feature_HasVNNIBit = 79,
      74             :   Feature_HasBITALGBit = 80,
      75             :   Feature_HasPOPCNTBit = 54,
      76             :   Feature_HasAESBit = 58,
      77             :   Feature_HasVAESBit = 60,
      78             :   Feature_NoVLX_Or_NoVAESBit = 59,
      79             :   Feature_HasFXSRBit = 28,
      80             :   Feature_HasXSAVEBit = 89,
      81             :   Feature_HasXSAVEOPTBit = 90,
      82             :   Feature_HasXSAVECBit = 91,
      83             :   Feature_HasXSAVESBit = 92,
      84             :   Feature_HasPCLMULBit = 62,
      85             :   Feature_NoVLX_Or_NoVPCLMULQDQBit = 63,
      86             :   Feature_HasVPCLMULQDQBit = 64,
      87             :   Feature_HasGFNIBit = 68,
      88             :   Feature_HasFMABit = 29,
      89             :   Feature_HasFMA4Bit = 33,
      90             :   Feature_NoFMA4Bit = 30,
      91             :   Feature_HasXOPBit = 34,
      92             :   Feature_HasTBMBit = 9,
      93             :   Feature_NoTBMBit = 112,
      94             :   Feature_HasLWPBit = 10,
      95             :   Feature_HasMOVBEBit = 3,
      96             :   Feature_HasRDRANDBit = 4,
      97             :   Feature_HasF16CBit = 66,
      98             :   Feature_HasFSGSBaseBit = 93,
      99             :   Feature_HasLZCNTBit = 6,
     100             :   Feature_HasBMIBit = 7,
     101             :   Feature_HasBMI2Bit = 8,
     102             :   Feature_NoBMI2Bit = 113,
     103             :   Feature_HasVBMIBit = 74,
     104             :   Feature_HasVBMI2Bit = 78,
     105             :   Feature_HasIFMABit = 75,
     106             :   Feature_HasRTMBit = 87,
     107             :   Feature_HasADXBit = 20,
     108             :   Feature_HasSHABit = 57,
     109             :   Feature_HasRDSEEDBit = 5,
     110             :   Feature_HasSSEPrefetchBit = 45,
     111             :   Feature_NoSSEPrefetchBit = 84,
     112             :   Feature_HasPrefetchWBit = 85,
     113             :   Feature_HasPREFETCHWT1Bit = 86,
     114             :   Feature_HasLAHFSAHFBit = 2,
     115             :   Feature_HasMWAITXBit = 11,
     116             :   Feature_HasCLZEROBit = 15,
     117             :   Feature_HasCLDEMOTEBit = 18,
     118             :   Feature_HasMOVDIRIBit = 13,
     119             :   Feature_HasMOVDIR64BBit = 14,
     120             :   Feature_HasPTWRITEBit = 96,
     121             :   Feature_FPStackf32Bit = 25,
     122             :   Feature_FPStackf64Bit = 26,
     123             :   Feature_HasCLFLUSHOPTBit = 16,
     124             :   Feature_HasCLWBBit = 17,
     125             :   Feature_HasWBNOINVDBit = 88,
     126             :   Feature_HasRDPIDBit = 95,
     127             :   Feature_HasWAITPKGBit = 12,
     128             :   Feature_HasINVPCIDBit = 94,
     129             :   Feature_HasCmpxchg16bBit = 101,
     130             :   Feature_Not64BitModeBit = 0,
     131             :   Feature_In64BitModeBit = 1,
     132             :   Feature_IsLP64Bit = 98,
     133             :   Feature_NotLP64Bit = 97,
     134             :   Feature_NotWin64WithoutFPBit = 99,
     135             :   Feature_IsPS4Bit = 107,
     136             :   Feature_NotPS4Bit = 106,
     137             :   Feature_KernelCodeBit = 108,
     138             :   Feature_NearDataBit = 110,
     139             :   Feature_IsNotPICBit = 109,
     140             :   Feature_OptForSizeBit = 44,
     141             :   Feature_OptForMinSizeBit = 38,
     142             :   Feature_OptForSpeedBit = 104,
     143             :   Feature_UseIncDecBit = 19,
     144             :   Feature_CallImmAddrBit = 111,
     145             :   Feature_FavorMemIndirectCallBit = 22,
     146             :   Feature_HasFastSHLDRotateBit = 102,
     147             :   Feature_HasMFenceBit = 46,
     148             :   Feature_UseRetpolineBit = 24,
     149             :   Feature_NotUseRetpolineBit = 23,
     150             : };
     151             : 
     152       11437 : PredicateBitset X86InstructionSelector::
     153             : computeAvailableModuleFeatures(const X86Subtarget *Subtarget) const {
     154       11437 :   PredicateBitset Features;
     155             :   if (true)
     156             :     Features[Feature_TruePredicateBit] = 1;
     157       11437 :   if (Subtarget->hasCMov())
     158             :     Features[Feature_HasCMovBit] = 1;
     159       11437 :   if (!Subtarget->hasCMov())
     160             :     Features[Feature_NoCMovBit] = 1;
     161       22874 :   if (Subtarget->hasMMX())
     162             :     Features[Feature_HasMMXBit] = 1;
     163       11437 :   if (Subtarget->has3DNow())
     164             :     Features[Feature_Has3DNowBit] = 1;
     165       22874 :   if (Subtarget->hasSSE1())
     166             :     Features[Feature_HasSSE1Bit] = 1;
     167       11437 :   if (Subtarget->hasSSE1() && !Subtarget->hasAVX())
     168             :     Features[Feature_UseSSE1Bit] = 1;
     169       22874 :   if (Subtarget->hasSSE2())
     170             :     Features[Feature_HasSSE2Bit] = 1;
     171       11437 :   if (Subtarget->hasSSE2() && !Subtarget->hasAVX())
     172             :     Features[Feature_UseSSE2Bit] = 1;
     173       22874 :   if (Subtarget->hasSSE3())
     174             :     Features[Feature_HasSSE3Bit] = 1;
     175       11437 :   if (Subtarget->hasSSE3() && !Subtarget->hasAVX())
     176             :     Features[Feature_UseSSE3Bit] = 1;
     177       22874 :   if (Subtarget->hasSSSE3())
     178             :     Features[Feature_HasSSSE3Bit] = 1;
     179       11437 :   if (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
     180             :     Features[Feature_UseSSSE3Bit] = 1;
     181       22874 :   if (!Subtarget->hasSSE41())
     182             :     Features[Feature_NoSSE41Bit] = 1;
     183       11437 :   if (Subtarget->hasSSE41() && !Subtarget->hasAVX())
     184             :     Features[Feature_UseSSE41Bit] = 1;
     185       22874 :   if (Subtarget->hasSSE42())
     186             :     Features[Feature_HasSSE42Bit] = 1;
     187       11437 :   if (Subtarget->hasSSE42() && !Subtarget->hasAVX())
     188             :     Features[Feature_UseSSE42Bit] = 1;
     189       11437 :   if (Subtarget->hasSSE4A())
     190             :     Features[Feature_HasSSE4ABit] = 1;
     191       22874 :   if (!Subtarget->hasAVX())
     192             :     Features[Feature_NoAVXBit] = 1;
     193       11437 :   if (Subtarget->hasAVX())
     194             :     Features[Feature_HasAVXBit] = 1;
     195       11437 :   if (Subtarget->hasAVX2())
     196             :     Features[Feature_HasAVX2Bit] = 1;
     197       11437 :   if (Subtarget->hasAVX() && !Subtarget->hasAVX2())
     198             :     Features[Feature_HasAVX1OnlyBit] = 1;
     199       22874 :   if (Subtarget->hasAVX512())
     200             :     Features[Feature_HasAVX512Bit] = 1;
     201       11437 :   if (Subtarget->hasAVX() && !Subtarget->hasAVX512())
     202             :     Features[Feature_UseAVXBit] = 1;
     203       22874 :   if (Subtarget->hasAVX2() && !Subtarget->hasAVX512())
     204             :     Features[Feature_UseAVX2Bit] = 1;
     205       22874 :   if (!Subtarget->hasAVX512())
     206             :     Features[Feature_NoAVX512Bit] = 1;
     207       11437 :   if (Subtarget->hasCDI())
     208             :     Features[Feature_HasCDIBit] = 1;
     209       11437 :   if (Subtarget->hasVPOPCNTDQ())
     210             :     Features[Feature_HasVPOPCNTDQBit] = 1;
     211       11437 :   if (Subtarget->hasERI())
     212             :     Features[Feature_HasERIBit] = 1;
     213       11437 :   if (Subtarget->hasDQI())
     214             :     Features[Feature_HasDQIBit] = 1;
     215       11437 :   if (!Subtarget->hasDQI())
     216             :     Features[Feature_NoDQIBit] = 1;
     217       11437 :   if (Subtarget->hasBWI())
     218             :     Features[Feature_HasBWIBit] = 1;
     219       11437 :   if (!Subtarget->hasBWI())
     220             :     Features[Feature_NoBWIBit] = 1;
     221       11437 :   if (Subtarget->hasVLX())
     222             :     Features[Feature_HasVLXBit] = 1;
     223       11437 :   if (!Subtarget->hasVLX())
     224             :     Features[Feature_NoVLXBit] = 1;
     225       11437 :   if (!Subtarget->hasVLX() || !Subtarget->hasBWI())
     226             :     Features[Feature_NoVLX_Or_NoBWIBit] = 1;
     227       11437 :   if (!Subtarget->hasVLX() || !Subtarget->hasDQI())
     228             :     Features[Feature_NoVLX_Or_NoDQIBit] = 1;
     229       11437 :   if (Subtarget->hasVNNI())
     230             :     Features[Feature_HasVNNIBit] = 1;
     231       11437 :   if (Subtarget->hasBITALG())
     232             :     Features[Feature_HasBITALGBit] = 1;
     233       11437 :   if (Subtarget->hasPOPCNT())
     234             :     Features[Feature_HasPOPCNTBit] = 1;
     235       11437 :   if (Subtarget->hasAES())
     236             :     Features[Feature_HasAESBit] = 1;
     237       11437 :   if (Subtarget->hasVAES())
     238             :     Features[Feature_HasVAESBit] = 1;
     239       11437 :   if (!Subtarget->hasVLX() || !Subtarget->hasVAES())
     240             :     Features[Feature_NoVLX_Or_NoVAESBit] = 1;
     241       11437 :   if (Subtarget->hasFXSR())
     242             :     Features[Feature_HasFXSRBit] = 1;
     243       11437 :   if (Subtarget->hasXSAVE())
     244             :     Features[Feature_HasXSAVEBit] = 1;
     245       11437 :   if (Subtarget->hasXSAVEOPT())
     246             :     Features[Feature_HasXSAVEOPTBit] = 1;
     247       11437 :   if (Subtarget->hasXSAVEC())
     248             :     Features[Feature_HasXSAVECBit] = 1;
     249       11437 :   if (Subtarget->hasXSAVES())
     250             :     Features[Feature_HasXSAVESBit] = 1;
     251       11437 :   if (Subtarget->hasPCLMUL())
     252             :     Features[Feature_HasPCLMULBit] = 1;
     253       11437 :   if (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ())
     254             :     Features[Feature_NoVLX_Or_NoVPCLMULQDQBit] = 1;
     255       11437 :   if (Subtarget->hasVPCLMULQDQ())
     256             :     Features[Feature_HasVPCLMULQDQBit] = 1;
     257       11437 :   if (Subtarget->hasGFNI())
     258             :     Features[Feature_HasGFNIBit] = 1;
     259       11437 :   if (Subtarget->hasFMA())
     260             :     Features[Feature_HasFMABit] = 1;
     261       11437 :   if (Subtarget->hasFMA4())
     262             :     Features[Feature_HasFMA4Bit] = 1;
     263       11437 :   if (!Subtarget->hasFMA4())
     264             :     Features[Feature_NoFMA4Bit] = 1;
     265       11437 :   if (Subtarget->hasXOP())
     266             :     Features[Feature_HasXOPBit] = 1;
     267       11437 :   if (Subtarget->hasTBM())
     268             :     Features[Feature_HasTBMBit] = 1;
     269       11437 :   if (!Subtarget->hasTBM())
     270             :     Features[Feature_NoTBMBit] = 1;
     271       11437 :   if (Subtarget->hasLWP())
     272             :     Features[Feature_HasLWPBit] = 1;
     273       11437 :   if (Subtarget->hasMOVBE())
     274             :     Features[Feature_HasMOVBEBit] = 1;
     275       11437 :   if (Subtarget->hasRDRAND())
     276             :     Features[Feature_HasRDRANDBit] = 1;
     277       11437 :   if (Subtarget->hasF16C())
     278             :     Features[Feature_HasF16CBit] = 1;
     279       11437 :   if (Subtarget->hasFSGSBase())
     280             :     Features[Feature_HasFSGSBaseBit] = 1;
     281       11437 :   if (Subtarget->hasLZCNT())
     282             :     Features[Feature_HasLZCNTBit] = 1;
     283       11437 :   if (Subtarget->hasBMI())
     284             :     Features[Feature_HasBMIBit] = 1;
     285       11437 :   if (Subtarget->hasBMI2())
     286             :     Features[Feature_HasBMI2Bit] = 1;
     287       11437 :   if (!Subtarget->hasBMI2())
     288             :     Features[Feature_NoBMI2Bit] = 1;
     289       11437 :   if (Subtarget->hasVBMI())
     290             :     Features[Feature_HasVBMIBit] = 1;
     291       11437 :   if (Subtarget->hasVBMI2())
     292             :     Features[Feature_HasVBMI2Bit] = 1;
     293       11437 :   if (Subtarget->hasIFMA())
     294             :     Features[Feature_HasIFMABit] = 1;
     295       11437 :   if (Subtarget->hasRTM())
     296             :     Features[Feature_HasRTMBit] = 1;
     297       11437 :   if (Subtarget->hasADX())
     298             :     Features[Feature_HasADXBit] = 1;
     299       11437 :   if (Subtarget->hasSHA())
     300             :     Features[Feature_HasSHABit] = 1;
     301       11437 :   if (Subtarget->hasRDSEED())
     302             :     Features[Feature_HasRDSEEDBit] = 1;
     303             :   if (Subtarget->hasSSEPrefetch())
     304             :     Features[Feature_HasSSEPrefetchBit] = 1;
     305             :   if (!Subtarget->hasSSEPrefetch())
     306             :     Features[Feature_NoSSEPrefetchBit] = 1;
     307       11437 :   if (Subtarget->hasPRFCHW())
     308             :     Features[Feature_HasPrefetchWBit] = 1;
     309       11437 :   if (Subtarget->hasPREFETCHWT1())
     310             :     Features[Feature_HasPREFETCHWT1Bit] = 1;
     311       11437 :   if (Subtarget->hasLAHFSAHF())
     312             :     Features[Feature_HasLAHFSAHFBit] = 1;
     313       11437 :   if (Subtarget->hasMWAITX())
     314             :     Features[Feature_HasMWAITXBit] = 1;
     315       11437 :   if (Subtarget->hasCLZERO())
     316             :     Features[Feature_HasCLZEROBit] = 1;
     317       11437 :   if (Subtarget->hasCLDEMOTE())
     318             :     Features[Feature_HasCLDEMOTEBit] = 1;
     319       11437 :   if (Subtarget->hasMOVDIRI())
     320             :     Features[Feature_HasMOVDIRIBit] = 1;
     321       11437 :   if (Subtarget->hasMOVDIR64B())
     322             :     Features[Feature_HasMOVDIR64BBit] = 1;
     323       11437 :   if (Subtarget->hasPTWRITE())
     324             :     Features[Feature_HasPTWRITEBit] = 1;
     325       11437 :   if (!Subtarget->hasSSE1())
     326             :     Features[Feature_FPStackf32Bit] = 1;
     327       11437 :   if (!Subtarget->hasSSE2())
     328             :     Features[Feature_FPStackf64Bit] = 1;
     329       11437 :   if (Subtarget->hasCLFLUSHOPT())
     330             :     Features[Feature_HasCLFLUSHOPTBit] = 1;
     331       11437 :   if (Subtarget->hasCLWB())
     332             :     Features[Feature_HasCLWBBit] = 1;
     333       11437 :   if (Subtarget->hasWBNOINVD())
     334             :     Features[Feature_HasWBNOINVDBit] = 1;
     335       11437 :   if (Subtarget->hasRDPID())
     336             :     Features[Feature_HasRDPIDBit] = 1;
     337       11437 :   if (Subtarget->hasWAITPKG())
     338             :     Features[Feature_HasWAITPKGBit] = 1;
     339       11437 :   if (Subtarget->hasINVPCID())
     340             :     Features[Feature_HasINVPCIDBit] = 1;
     341       11437 :   if (Subtarget->hasCmpxchg16b())
     342             :     Features[Feature_HasCmpxchg16bBit] = 1;
     343       11437 :   if (!Subtarget->is64Bit())
     344             :     Features[Feature_Not64BitModeBit] = 1;
     345       11437 :   if (Subtarget->is64Bit())
     346             :     Features[Feature_In64BitModeBit] = 1;
     347             :   if (Subtarget->isTarget64BitLP64())
     348             :     Features[Feature_IsLP64Bit] = 1;
     349             :   if (!Subtarget->isTarget64BitLP64())
     350             :     Features[Feature_NotLP64Bit] = 1;
     351             :   if (Subtarget->isTargetPS4())
     352             :     Features[Feature_IsPS4Bit] = 1;
     353             :   if (!Subtarget->isTargetPS4())
     354             :     Features[Feature_NotPS4Bit] = 1;
     355       11437 :   if (TM.getCodeModel() == CodeModel::Kernel)
     356             :     Features[Feature_KernelCodeBit] = 1;
     357       11437 :   if (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
     358             :     Features[Feature_NearDataBit] = 1;
     359       11437 :   if (!TM.isPositionIndependent())
     360             :     Features[Feature_IsNotPICBit] = 1;
     361       11437 :   if (Subtarget->isLegalToCallImmediateAddr())
     362             :     Features[Feature_CallImmAddrBit] = 1;
     363       11437 :   if (!Subtarget->slowTwoMemOps())
     364             :     Features[Feature_FavorMemIndirectCallBit] = 1;
     365       11437 :   if (Subtarget->hasFastSHLDRotate())
     366             :     Features[Feature_HasFastSHLDRotateBit] = 1;
     367             :   if (Subtarget->hasMFence())
     368             :     Features[Feature_HasMFenceBit] = 1;
     369       11437 :   if (Subtarget->useRetpoline())
     370             :     Features[Feature_UseRetpolineBit] = 1;
     371       11437 :   if (!Subtarget->useRetpoline())
     372             :     Features[Feature_NotUseRetpolineBit] = 1;
     373       11437 :   return Features;
     374             : }
     375             : 
     376        1811 : PredicateBitset X86InstructionSelector::
     377             : computeAvailableFunctionFeatures(const X86Subtarget *Subtarget, const MachineFunction *MF) const {
     378        1811 :   PredicateBitset Features;
     379           0 :   if (!Subtarget->isTargetWin64() ||Subtarget->getFrameLowering()->hasFP(*MF))
     380             :     Features[Feature_NotWin64WithoutFPBit] = 1;
     381        1811 :   if (MF->getFunction().optForSize())
     382             :     Features[Feature_OptForSizeBit] = 1;
     383        3622 :   if (MF->getFunction().optForMinSize())
     384             :     Features[Feature_OptForMinSizeBit] = 1;
     385        1811 :   if (!MF->getFunction().optForSize())
     386             :     Features[Feature_OptForSpeedBit] = 1;
     387        1811 :   if (!Subtarget->slowIncDec() || MF->getFunction().optForSize())
     388             :     Features[Feature_UseIncDecBit] = 1;
     389        1811 :   return Features;
     390             : }
     391             : 
     392             : // LLT Objects.
     393             : enum {
     394             :   GILLT_s1,
     395             :   GILLT_s8,
     396             :   GILLT_s16,
     397             :   GILLT_s32,
     398             :   GILLT_s64,
     399             :   GILLT_s80,
     400             :   GILLT_s128,
     401             :   GILLT_v2s1,
     402             :   GILLT_v2s64,
     403             :   GILLT_v4s1,
     404             :   GILLT_v4s32,
     405             :   GILLT_v4s64,
     406             :   GILLT_v8s1,
     407             :   GILLT_v8s16,
     408             :   GILLT_v8s32,
     409             :   GILLT_v8s64,
     410             :   GILLT_v16s1,
     411             :   GILLT_v16s8,
     412             :   GILLT_v16s16,
     413             :   GILLT_v16s32,
     414             :   GILLT_v32s1,
     415             :   GILLT_v32s8,
     416             :   GILLT_v32s16,
     417             :   GILLT_v64s1,
     418             :   GILLT_v64s8,
     419             : };
     420             : const static size_t NumTypeObjects = 25;
     421             : const static LLT TypeObjects[] = {
     422             :   LLT::scalar(1),
     423             :   LLT::scalar(8),
     424             :   LLT::scalar(16),
     425             :   LLT::scalar(32),
     426             :   LLT::scalar(64),
     427             :   LLT::scalar(80),
     428             :   LLT::scalar(128),
     429             :   LLT::vector(2, 1),
     430             :   LLT::vector(2, 64),
     431             :   LLT::vector(4, 1),
     432             :   LLT::vector(4, 32),
     433             :   LLT::vector(4, 64),
     434             :   LLT::vector(8, 1),
     435             :   LLT::vector(8, 16),
     436             :   LLT::vector(8, 32),
     437             :   LLT::vector(8, 64),
     438             :   LLT::vector(16, 1),
     439             :   LLT::vector(16, 8),
     440             :   LLT::vector(16, 16),
     441             :   LLT::vector(16, 32),
     442             :   LLT::vector(32, 1),
     443             :   LLT::vector(32, 8),
     444             :   LLT::vector(32, 16),
     445             :   LLT::vector(64, 1),
     446             :   LLT::vector(64, 8),
     447       99743 : };
     448             : 
     449             : // Feature bitsets.
     450             : enum {
     451             :   GIFBS_Invalid,
     452             :   GIFBS_FPStackf32,
     453             :   GIFBS_FPStackf64,
     454             :   GIFBS_Has3DNow,
     455             :   GIFBS_HasAVX,
     456             :   GIFBS_HasAVX1Only,
     457             :   GIFBS_HasAVX2,
     458             :   GIFBS_HasAVX512,
     459             :   GIFBS_HasBMI,
     460             :   GIFBS_HasBMI2,
     461             :   GIFBS_HasBWI,
     462             :   GIFBS_HasDQI,
     463             :   GIFBS_HasLWP,
     464             :   GIFBS_HasMFence,
     465             :   GIFBS_HasMMX,
     466             :   GIFBS_HasMOVBE,
     467             :   GIFBS_HasPTWRITE,
     468             :   GIFBS_HasRTM,
     469             :   GIFBS_HasSHA,
     470             :   GIFBS_HasSSE1,
     471             :   GIFBS_HasSSE2,
     472             :   GIFBS_HasSSE42,
     473             :   GIFBS_HasSSE4A,
     474             :   GIFBS_HasTBM,
     475             :   GIFBS_HasVLX,
     476             :   GIFBS_HasWAITPKG,
     477             :   GIFBS_HasWBNOINVD,
     478             :   GIFBS_HasXOP,
     479             :   GIFBS_In64BitMode,
     480             :   GIFBS_NoDQI,
     481             :   GIFBS_Not64BitMode,
     482             :   GIFBS_UseAVX,
     483             :   GIFBS_UseIncDec,
     484             :   GIFBS_UseSSE1,
     485             :   GIFBS_UseSSE2,
     486             :   GIFBS_UseSSE41,
     487             :   GIFBS_UseSSSE3,
     488             :   GIFBS_HasAES_HasAVX,
     489             :   GIFBS_HasAES_NoAVX,
     490             :   GIFBS_HasAVX_NoVLX,
     491             :   GIFBS_HasAVX_NoVLX_Or_NoBWI,
     492             :   GIFBS_HasAVX2_NoVLX,
     493             :   GIFBS_HasAVX2_NoVLX_Or_NoBWI,
     494             :   GIFBS_HasAVX512_HasVAES,
     495             :   GIFBS_HasAVX512_HasVLX,
     496             :   GIFBS_HasAVX512_HasVPCLMULQDQ,
     497             :   GIFBS_HasBWI_HasVLX,
     498             :   GIFBS_HasDQI_HasVLX,
     499             :   GIFBS_HasDQI_NoBWI,
     500             :   GIFBS_HasFSGSBase_In64BitMode,
     501             :   GIFBS_HasPCLMUL_NoAVX,
     502             :   GIFBS_HasPTWRITE_In64BitMode,
     503             :   GIFBS_HasRDPID_Not64BitMode,
     504             :   GIFBS_HasSSE2_NoAVX512,
     505             :   GIFBS_HasVAES_HasVLX,
     506             :   GIFBS_HasVAES_NoVLX,
     507             :   GIFBS_HasVLX_HasVPCLMULQDQ,
     508             :   GIFBS_HasVPCLMULQDQ_NoVLX,
     509             :   GIFBS_HasWAITPKG_In64BitMode,
     510             :   GIFBS_HasWAITPKG_Not64BitMode,
     511             :   GIFBS_Not64BitMode_OptForSize,
     512             :   GIFBS_NotWin64WithoutFP_OptForMinSize,
     513             :   GIFBS_HasAES_HasAVX_NoVLX_Or_NoVAES,
     514             :   GIFBS_HasAVX_HasPCLMUL_NoVLX_Or_NoVPCLMULQDQ,
     515             : };
     516             : const static PredicateBitset FeatureBitsets[] {
     517             :   {}, // GIFBS_Invalid
     518             :   {Feature_FPStackf32Bit, },
     519             :   {Feature_FPStackf64Bit, },
     520             :   {Feature_Has3DNowBit, },
     521             :   {Feature_HasAVXBit, },
     522             :   {Feature_HasAVX1OnlyBit, },
     523             :   {Feature_HasAVX2Bit, },
     524             :   {Feature_HasAVX512Bit, },
     525             :   {Feature_HasBMIBit, },
     526             :   {Feature_HasBMI2Bit, },
     527             :   {Feature_HasBWIBit, },
     528             :   {Feature_HasDQIBit, },
     529             :   {Feature_HasLWPBit, },
     530             :   {Feature_HasMFenceBit, },
     531             :   {Feature_HasMMXBit, },
     532             :   {Feature_HasMOVBEBit, },
     533             :   {Feature_HasPTWRITEBit, },
     534             :   {Feature_HasRTMBit, },
     535             :   {Feature_HasSHABit, },
     536             :   {Feature_HasSSE1Bit, },
     537             :   {Feature_HasSSE2Bit, },
     538             :   {Feature_HasSSE42Bit, },
     539             :   {Feature_HasSSE4ABit, },
     540             :   {Feature_HasTBMBit, },
     541             :   {Feature_HasVLXBit, },
     542             :   {Feature_HasWAITPKGBit, },
     543             :   {Feature_HasWBNOINVDBit, },
     544             :   {Feature_HasXOPBit, },
     545             :   {Feature_In64BitModeBit, },
     546             :   {Feature_NoDQIBit, },
     547             :   {Feature_Not64BitModeBit, },
     548             :   {Feature_UseAVXBit, },
     549             :   {Feature_UseIncDecBit, },
     550             :   {Feature_UseSSE1Bit, },
     551             :   {Feature_UseSSE2Bit, },
     552             :   {Feature_UseSSE41Bit, },
     553             :   {Feature_UseSSSE3Bit, },
     554             :   {Feature_HasAESBit, Feature_HasAVXBit, },
     555             :   {Feature_HasAESBit, Feature_NoAVXBit, },
     556             :   {Feature_HasAVXBit, Feature_NoVLXBit, },
     557             :   {Feature_HasAVXBit, Feature_NoVLX_Or_NoBWIBit, },
     558             :   {Feature_HasAVX2Bit, Feature_NoVLXBit, },
     559             :   {Feature_HasAVX2Bit, Feature_NoVLX_Or_NoBWIBit, },
     560             :   {Feature_HasAVX512Bit, Feature_HasVAESBit, },
     561             :   {Feature_HasAVX512Bit, Feature_HasVLXBit, },
     562             :   {Feature_HasAVX512Bit, Feature_HasVPCLMULQDQBit, },
     563             :   {Feature_HasBWIBit, Feature_HasVLXBit, },
     564             :   {Feature_HasDQIBit, Feature_HasVLXBit, },
     565             :   {Feature_HasDQIBit, Feature_NoBWIBit, },
     566             :   {Feature_HasFSGSBaseBit, Feature_In64BitModeBit, },
     567             :   {Feature_HasPCLMULBit, Feature_NoAVXBit, },
     568             :   {Feature_HasPTWRITEBit, Feature_In64BitModeBit, },
     569             :   {Feature_HasRDPIDBit, Feature_Not64BitModeBit, },
     570             :   {Feature_HasSSE2Bit, Feature_NoAVX512Bit, },
     571             :   {Feature_HasVAESBit, Feature_HasVLXBit, },
     572             :   {Feature_HasVAESBit, Feature_NoVLXBit, },
     573             :   {Feature_HasVLXBit, Feature_HasVPCLMULQDQBit, },
     574             :   {Feature_HasVPCLMULQDQBit, Feature_NoVLXBit, },
     575             :   {Feature_HasWAITPKGBit, Feature_In64BitModeBit, },
     576             :   {Feature_HasWAITPKGBit, Feature_Not64BitModeBit, },
     577             :   {Feature_Not64BitModeBit, Feature_OptForSizeBit, },
     578             :   {Feature_NotWin64WithoutFPBit, Feature_OptForMinSizeBit, },
     579             :   {Feature_HasAESBit, Feature_HasAVXBit, Feature_NoVLX_Or_NoVAESBit, },
     580             :   {Feature_HasAVXBit, Feature_HasPCLMULBit, Feature_NoVLX_Or_NoVPCLMULQDQBit, },
     581       99743 : };
     582             : 
     583             : // ComplexPattern predicates.
     584             : enum {
     585             :   GICP_Invalid,
     586             : };
     587             : // See constructor for table contents
     588             : 
     589             : // PatFrag predicates.
     590             : enum {
     591             :   GIPFP_I64_Predicate_AndMask64 = GIPFP_I64_Invalid + 1,
     592             :   GIPFP_I64_Predicate_BTCBTSMask64,
     593             :   GIPFP_I64_Predicate_BTRMask64,
     594             :   GIPFP_I64_Predicate_PrefetchWT1Level,
     595             :   GIPFP_I64_Predicate_i16immSExt8,
     596             :   GIPFP_I64_Predicate_i32immSExt8,
     597             :   GIPFP_I64_Predicate_i64immSExt32,
     598             :   GIPFP_I64_Predicate_i64immSExt8,
     599             :   GIPFP_I64_Predicate_i64immZExt32,
     600             :   GIPFP_I64_Predicate_i64immZExt32SExt8,
     601             :   GIPFP_I64_Predicate_immShift16,
     602             :   GIPFP_I64_Predicate_immShift32,
     603             :   GIPFP_I64_Predicate_immShift64,
     604             :   GIPFP_I64_Predicate_immShift8,
     605             :   GIPFP_I64_Predicate_immff00_ffff,
     606             : };
     607          60 : bool X86InstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
     608          60 :   switch (PredicateID) {
     609           0 :   case GIPFP_I64_Predicate_AndMask64: {
     610             :     
     611           0 :   return isMask_64(Imm) && !isUInt<32>(Imm);
     612             : 
     613             :     llvm_unreachable("ImmediateCode should have returned");
     614             :     return false;
     615             :   }
     616             :   case GIPFP_I64_Predicate_BTCBTSMask64: {
     617             :     
     618           0 :   return !isInt<32>(Imm) && isPowerOf2_64(Imm);
     619             : 
     620             :     llvm_unreachable("ImmediateCode should have returned");
     621             :     return false;
     622             :   }
     623           0 :   case GIPFP_I64_Predicate_BTRMask64: {
     624             :     
     625           0 :   return !isUInt<32>(Imm) && !isInt<32>(Imm) && isPowerOf2_64(~Imm);
     626             : 
     627             :     llvm_unreachable("ImmediateCode should have returned");
     628             :     return false;
     629             :   }
     630           0 :   case GIPFP_I64_Predicate_PrefetchWT1Level: {
     631             :     
     632           0 :   return Imm < 3;
     633             : 
     634             :     llvm_unreachable("ImmediateCode should have returned");
     635             :     return false;
     636             :   }
     637             :   case GIPFP_I64_Predicate_i16immSExt8: {
     638           5 :      return isInt<8>(Imm); 
     639             :     llvm_unreachable("ImmediateCode should have returned");
     640             :     return false;
     641             :   }
     642             :   case GIPFP_I64_Predicate_i32immSExt8: {
     643          10 :      return isInt<8>(Imm); 
     644             :     llvm_unreachable("ImmediateCode should have returned");
     645             :     return false;
     646             :   }
     647             :   case GIPFP_I64_Predicate_i64immSExt32: {
     648          41 :      return isInt<32>(Imm); 
     649             :     llvm_unreachable("ImmediateCode should have returned");
     650             :     return false;
     651             :   }
     652             :   case GIPFP_I64_Predicate_i64immSExt8: {
     653           4 :      return isInt<8>(Imm); 
     654             :     llvm_unreachable("ImmediateCode should have returned");
     655             :     return false;
     656             :   }
     657           0 :   case GIPFP_I64_Predicate_i64immZExt32: {
     658           0 :      return isUInt<32>(Imm); 
     659             :     llvm_unreachable("ImmediateCode should have returned");
     660             :     return false;
     661             :   }
     662           0 :   case GIPFP_I64_Predicate_i64immZExt32SExt8: {
     663             :     
     664           0 :   return isUInt<32>(Imm) && isInt<8>(static_cast<int32_t>(Imm));
     665             : 
     666             :     llvm_unreachable("ImmediateCode should have returned");
     667             :     return false;
     668             :   }
     669           0 :   case GIPFP_I64_Predicate_immShift16: {
     670             :     
     671           0 :   return countTrailingOnes<uint64_t>(Imm) >= 4;
     672             : 
     673             :     llvm_unreachable("ImmediateCode should have returned");
     674             :     return false;
     675             :   }
     676           0 :   case GIPFP_I64_Predicate_immShift32: {
     677             :     
     678           0 :   return countTrailingOnes<uint64_t>(Imm) >= 5;
     679             : 
     680             :     llvm_unreachable("ImmediateCode should have returned");
     681             :     return false;
     682             :   }
     683           0 :   case GIPFP_I64_Predicate_immShift64: {
     684             :     
     685           0 :   return countTrailingOnes<uint64_t>(Imm) >= 6;
     686             : 
     687             :     llvm_unreachable("ImmediateCode should have returned");
     688             :     return false;
     689             :   }
     690           0 :   case GIPFP_I64_Predicate_immShift8: {
     691             :     
     692           0 :   return countTrailingOnes<uint64_t>(Imm) >= 3;
     693             : 
     694             :     llvm_unreachable("ImmediateCode should have returned");
     695             :     return false;
     696             :   }
     697           0 :   case GIPFP_I64_Predicate_immff00_ffff: {
     698             :     
     699           0 :   return Imm >= 0xff00 && Imm <= 0xffff;
     700             : 
     701             :     llvm_unreachable("ImmediateCode should have returned");
     702             :     return false;
     703             :   }
     704             :   }
     705           0 :   llvm_unreachable("Unknown predicate");
     706             :   return false;
     707             : }
     708             : // PatFrag predicates.
     709             : enum {
     710             :   GIPFP_APFloat_Predicate_fpimm0 = GIPFP_APFloat_Invalid + 1,
     711             :   GIPFP_APFloat_Predicate_fpimm1,
     712             :   GIPFP_APFloat_Predicate_fpimmneg0,
     713             :   GIPFP_APFloat_Predicate_fpimmneg1,
     714             : };
     715           5 : bool X86InstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
     716           5 :   switch (PredicateID) {
     717           5 :   case GIPFP_APFloat_Predicate_fpimm0: {
     718             :     
     719           5 :   return Imm.isExactlyValue(+0.0);
     720             : 
     721             :     llvm_unreachable("ImmediateCode should have returned");
     722             :     return false;
     723             :   }
     724           0 :   case GIPFP_APFloat_Predicate_fpimm1: {
     725             :     
     726           0 :   return Imm.isExactlyValue(+1.0);
     727             : 
     728             :     llvm_unreachable("ImmediateCode should have returned");
     729             :     return false;
     730             :   }
     731           0 :   case GIPFP_APFloat_Predicate_fpimmneg0: {
     732             :     
     733           0 :   return Imm.isExactlyValue(-0.0);
     734             : 
     735             :     llvm_unreachable("ImmediateCode should have returned");
     736             :     return false;
     737             :   }
     738           0 :   case GIPFP_APFloat_Predicate_fpimmneg1: {
     739             :     
     740           0 :   return Imm.isExactlyValue(-1.0);
     741             : 
     742             :     llvm_unreachable("ImmediateCode should have returned");
     743             :     return false;
     744             :   }
     745             :   }
     746           0 :   llvm_unreachable("Unknown predicate");
     747             :   return false;
     748             : }
     749           0 : bool X86InstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
     750           0 :   llvm_unreachable("Unknown predicate");
     751             :   return false;
     752             : }
     753           0 : bool X86InstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
     754             :   const MachineFunction &MF = *MI.getParent()->getParent();
     755             :   const MachineRegisterInfo &MRI = MF.getRegInfo();
     756             :   (void)MRI;
     757           0 :   llvm_unreachable("Unknown predicate");
     758             :   return false;
     759             : }
     760             : 
     761             : X86InstructionSelector::ComplexMatcherMemFn
     762             : X86InstructionSelector::ComplexPredicateFns[] = {
     763             :   nullptr, // GICP_Invalid
     764             : };
     765             : 
     766             : // Custom renderers.
     767             : enum {
     768             :   GICR_Invalid,
     769             : };
     770             : X86InstructionSelector::CustomRendererFn
     771             : X86InstructionSelector::CustomRenderers[] = {
     772             :   nullptr, // GICP_Invalid
     773             : };
     774             : 
     775        1811 : bool X86InstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
     776        1811 :   MachineFunction &MF = *I.getParent()->getParent();
     777        1811 :   MachineRegisterInfo &MRI = MF.getRegInfo();
     778             :   // FIXME: This should be computed on a per-function basis rather than per-insn.
     779        1811 :   AvailableFunctionFeatures = computeAvailableFunctionFeatures(&STI, &MF);
     780        1811 :   const PredicateBitset AvailableFeatures = getAvailableFeatures();
     781             :   NewMIVector OutMIs;
     782             :   State.MIs.clear();
     783        1811 :   State.MIs.push_back(&I);
     784             : 
     785        1811 :   if (executeMatchTable(*this, OutMIs, State, ISelInfo, getMatchTable(), TII, MRI, TRI, RBI, AvailableFeatures, CoverageInfo)) {
     786             :     return true;
     787             :   }
     788             : 
     789        1143 :   return false;
     790             : }
     791             : 
     792           0 : const int64_t *X86InstructionSelector::getMatchTable() const {
     793             :   constexpr static int64_t MatchTable0[] = {
     794             :     GIM_SwitchOpcode, /*MI*/0, /*[*/34, 124, /*)*//*default:*//*Label 31*/ 33089,
     795             :     /*TargetOpcode::G_ADD*//*Label 0*/ 95,
     796             :     /*TargetOpcode::G_SUB*//*Label 1*/ 1712,
     797             :     /*TargetOpcode::G_MUL*//*Label 2*/ 2793, 0, 0, 0, 0,
     798             :     /*TargetOpcode::G_AND*//*Label 3*/ 3559,
     799             :     /*TargetOpcode::G_OR*//*Label 4*/ 6764,
     800             :     /*TargetOpcode::G_XOR*//*Label 5*/ 9528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     801             :     /*TargetOpcode::G_BITCAST*//*Label 6*/ 11594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     802             :     /*TargetOpcode::G_INTRINSIC*//*Label 7*/ 14943,
     803             :     /*TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS*//*Label 8*/ 22486,
     804             :     /*TargetOpcode::G_ANYEXT*//*Label 9*/ 23917,
     805             :     /*TargetOpcode::G_TRUNC*//*Label 10*/ 24033,
     806             :     /*TargetOpcode::G_CONSTANT*//*Label 11*/ 24368,
     807             :     /*TargetOpcode::G_FCONSTANT*//*Label 12*/ 24571, 0, 0,
     808             :     /*TargetOpcode::G_SEXT*//*Label 13*/ 24764,
     809             :     /*TargetOpcode::G_ZEXT*//*Label 14*/ 25268,
     810             :     /*TargetOpcode::G_SHL*//*Label 15*/ 25403,
     811             :     /*TargetOpcode::G_LSHR*//*Label 16*/ 26128,
     812             :     /*TargetOpcode::G_ASHR*//*Label 17*/ 26959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     813             :     /*TargetOpcode::G_FADD*//*Label 18*/ 27616,
     814             :     /*TargetOpcode::G_FSUB*//*Label 19*/ 28229,
     815             :     /*TargetOpcode::G_FMUL*//*Label 20*/ 28842, 0,
     816             :     /*TargetOpcode::G_FDIV*//*Label 21*/ 29455, 0, 0, 0, 0, 0, 0,
     817             :     /*TargetOpcode::G_FNEG*//*Label 22*/ 30068,
     818             :     /*TargetOpcode::G_FPEXT*//*Label 23*/ 30157,
     819             :     /*TargetOpcode::G_FPTRUNC*//*Label 24*/ 30433,
     820             :     /*TargetOpcode::G_FPTOSI*//*Label 25*/ 30718,
     821             :     /*TargetOpcode::G_FPTOUI*//*Label 26*/ 31348,
     822             :     /*TargetOpcode::G_SITOFP*//*Label 27*/ 31702,
     823             :     /*TargetOpcode::G_UITOFP*//*Label 28*/ 32532, 0, 0, 0,
     824             :     /*TargetOpcode::G_BR*//*Label 29*/ 32986, 0, 0, 0,
     825             :     /*TargetOpcode::G_BSWAP*//*Label 30*/ 32999,
     826             :     // Label 0: @95
     827             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 25, /*)*//*default:*//*Label 48*/ 1711,
     828             :     /*GILLT_s8*//*Label 32*/ 125,
     829             :     /*GILLT_s16*//*Label 33*/ 239,
     830             :     /*GILLT_s32*//*Label 34*/ 411,
     831             :     /*GILLT_s64*//*Label 35*/ 583, 0, 0, 0,
     832             :     /*GILLT_v2s64*//*Label 36*/ 783, 0,
     833             :     /*GILLT_v4s32*//*Label 37*/ 864,
     834             :     /*GILLT_v4s64*//*Label 38*/ 1067, 0,
     835             :     /*GILLT_v8s16*//*Label 39*/ 1125,
     836             :     /*GILLT_v8s32*//*Label 40*/ 1328,
     837             :     /*GILLT_v8s64*//*Label 41*/ 1386, 0,
     838             :     /*GILLT_v16s8*//*Label 42*/ 1418,
     839             :     /*GILLT_v16s16*//*Label 43*/ 1499,
     840             :     /*GILLT_v16s32*//*Label 44*/ 1557, 0,
     841             :     /*GILLT_v32s8*//*Label 45*/ 1589,
     842             :     /*GILLT_v32s16*//*Label 46*/ 1647, 0,
     843             :     /*GILLT_v64s8*//*Label 47*/ 1679,
     844             :     // Label 32: @125
     845             :     GIM_Try, /*On fail goto*//*Label 49*/ 238,
     846             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s8,
     847             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s8,
     848             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR8RegClassID,
     849             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR8RegClassID,
     850             :       GIM_Try, /*On fail goto*//*Label 50*/ 167, // Rule ID 16124 //
     851             :         GIM_CheckFeatures, GIFBS_UseIncDec,
     852             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
     853             :         // (add:{ *:[i8] } GR8:{ *:[i8] }:$src, 1:{ *:[i8] })  =>  (INC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src)
     854             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::INC8r,
     855             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     856             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
     857             :         GIR_EraseFromParent, /*InsnID*/0,
     858             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     859             :         // GIR_Coverage, 16124,
     860             :         GIR_Done,
     861             :       // Label 50: @167
     862             :       GIM_Try, /*On fail goto*//*Label 51*/ 191, // Rule ID 16128 //
     863             :         GIM_CheckFeatures, GIFBS_UseIncDec,
     864             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
     865             :         // (add:{ *:[i8] } GR8:{ *:[i8] }:$src, -1:{ *:[i8] })  =>  (DEC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src)
     866             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::DEC8r,
     867             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     868             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
     869             :         GIR_EraseFromParent, /*InsnID*/0,
     870             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     871             :         // GIR_Coverage, 16128,
     872             :         GIR_Done,
     873             :       // Label 51: @191
     874             :       GIM_Try, /*On fail goto*//*Label 52*/ 221, // Rule ID 16078 //
     875             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     876             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
     877             :         // MIs[1] Operand 1
     878             :         // No operand predicates
     879             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     880             :         // (add:{ *:[i8] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)  =>  (ADD8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)
     881             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ADD8ri,
     882             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     883             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
     884             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
     885             :         GIR_EraseFromParent, /*InsnID*/0,
     886             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     887             :         // GIR_Coverage, 16078,
     888             :         GIR_Done,
     889             :       // Label 52: @221
     890             :       GIM_Try, /*On fail goto*//*Label 53*/ 237, // Rule ID 16070 //
     891             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR8RegClassID,
     892             :         // (add:{ *:[i8] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)  =>  (ADD8rr:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)
     893             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::ADD8rr,
     894             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
     895             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     896             :         // GIR_Coverage, 16070,
     897             :         GIR_Done,
     898             :       // Label 53: @237
     899             :       GIM_Reject,
     900             :     // Label 49: @238
     901             :     GIM_Reject,
     902             :     // Label 33: @239
     903             :     GIM_Try, /*On fail goto*//*Label 54*/ 410,
     904             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
     905             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
     906             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR16RegClassID,
     907             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR16RegClassID,
     908             :       GIM_Try, /*On fail goto*//*Label 55*/ 282, // Rule ID 15936 //
     909             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 128,
     910             :         // (add:{ *:[i16] } GR16:{ *:[i16] }:$src1, 128:{ *:[i16] })  =>  (SUB16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, -128:{ *:[i16] })
     911             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB16ri8,
     912             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     913             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
     914             :         GIR_AddImm, /*InsnID*/0, /*Imm*/-128,
     915             :         GIR_EraseFromParent, /*InsnID*/0,
     916             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     917             :         // GIR_Coverage, 15936,
     918             :         GIR_Done,
     919             :       // Label 55: @282
     920             :       GIM_Try, /*On fail goto*//*Label 56*/ 306, // Rule ID 16125 //
     921             :         GIM_CheckFeatures, GIFBS_UseIncDec,
     922             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
     923             :         // (add:{ *:[i16] } GR16:{ *:[i16] }:$src, 1:{ *:[i16] })  =>  (INC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
     924             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::INC16r,
     925             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     926             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
     927             :         GIR_EraseFromParent, /*InsnID*/0,
     928             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     929             :         // GIR_Coverage, 16125,
     930             :         GIR_Done,
     931             :       // Label 56: @306
     932             :       GIM_Try, /*On fail goto*//*Label 57*/ 330, // Rule ID 16129 //
     933             :         GIM_CheckFeatures, GIFBS_UseIncDec,
     934             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
     935             :         // (add:{ *:[i16] } GR16:{ *:[i16] }:$src, -1:{ *:[i16] })  =>  (DEC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
     936             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::DEC16r,
     937             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     938             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
     939             :         GIR_EraseFromParent, /*InsnID*/0,
     940             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     941             :         // GIR_Coverage, 16129,
     942             :         GIR_Done,
     943             :       // Label 57: @330
     944             :       GIM_Try, /*On fail goto*//*Label 58*/ 363, // Rule ID 16081 //
     945             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     946             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
     947             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i16immSExt8,
     948             :         // MIs[1] Operand 1
     949             :         // No operand predicates
     950             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     951             :         // (add:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)  =>  (ADD16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)
     952             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ADD16ri8,
     953             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     954             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
     955             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
     956             :         GIR_EraseFromParent, /*InsnID*/0,
     957             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     958             :         // GIR_Coverage, 16081,
     959             :         GIR_Done,
     960             :       // Label 58: @363
     961             :       GIM_Try, /*On fail goto*//*Label 59*/ 393, // Rule ID 16079 //
     962             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     963             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
     964             :         // MIs[1] Operand 1
     965             :         // No operand predicates
     966             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
     967             :         // (add:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)  =>  (ADD16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
     968             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ADD16ri,
     969             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
     970             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
     971             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
     972             :         GIR_EraseFromParent, /*InsnID*/0,
     973             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     974             :         // GIR_Coverage, 16079,
     975             :         GIR_Done,
     976             :       // Label 59: @393
     977             :       GIM_Try, /*On fail goto*//*Label 60*/ 409, // Rule ID 16071 //
     978             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR16RegClassID,
     979             :         // (add:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)  =>  (ADD16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
     980             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::ADD16rr,
     981             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
     982             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
     983             :         // GIR_Coverage, 16071,
     984             :         GIR_Done,
     985             :       // Label 60: @409
     986             :       GIM_Reject,
     987             :     // Label 54: @410
     988             :     GIM_Reject,
     989             :     // Label 34: @411
     990             :     GIM_Try, /*On fail goto*//*Label 61*/ 582,
     991             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
     992             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
     993             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
     994             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
     995             :       GIM_Try, /*On fail goto*//*Label 62*/ 454, // Rule ID 15938 //
     996             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 128,
     997             :         // (add:{ *:[i32] } GR32:{ *:[i32] }:$src1, 128:{ *:[i32] })  =>  (SUB32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, -128:{ *:[i32] })
     998             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB32ri8,
     999             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1000             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1001             :         GIR_AddImm, /*InsnID*/0, /*Imm*/-128,
    1002             :         GIR_EraseFromParent, /*InsnID*/0,
    1003             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1004             :         // GIR_Coverage, 15938,
    1005             :         GIR_Done,
    1006             :       // Label 62: @454
    1007             :       GIM_Try, /*On fail goto*//*Label 63*/ 478, // Rule ID 16126 //
    1008             :         GIM_CheckFeatures, GIFBS_UseIncDec,
    1009             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
    1010             :         // (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] })  =>  (INC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    1011             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::INC32r,
    1012             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1013             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    1014             :         GIR_EraseFromParent, /*InsnID*/0,
    1015             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1016             :         // GIR_Coverage, 16126,
    1017             :         GIR_Done,
    1018             :       // Label 63: @478
    1019             :       GIM_Try, /*On fail goto*//*Label 64*/ 502, // Rule ID 16130 //
    1020             :         GIM_CheckFeatures, GIFBS_UseIncDec,
    1021             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    1022             :         // (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })  =>  (DEC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    1023             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::DEC32r,
    1024             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1025             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    1026             :         GIR_EraseFromParent, /*InsnID*/0,
    1027             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1028             :         // GIR_Coverage, 16130,
    1029             :         GIR_Done,
    1030             :       // Label 64: @502
    1031             :       GIM_Try, /*On fail goto*//*Label 65*/ 535, // Rule ID 16082 //
    1032             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1033             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1034             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i32immSExt8,
    1035             :         // MIs[1] Operand 1
    1036             :         // No operand predicates
    1037             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1038             :         // (add:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)  =>  (ADD32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)
    1039             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ADD32ri8,
    1040             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1041             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1042             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1043             :         GIR_EraseFromParent, /*InsnID*/0,
    1044             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1045             :         // GIR_Coverage, 16082,
    1046             :         GIR_Done,
    1047             :       // Label 65: @535
    1048             :       GIM_Try, /*On fail goto*//*Label 66*/ 565, // Rule ID 16080 //
    1049             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1050             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1051             :         // MIs[1] Operand 1
    1052             :         // No operand predicates
    1053             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1054             :         // (add:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)  =>  (ADD32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
    1055             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ADD32ri,
    1056             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1057             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1058             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1059             :         GIR_EraseFromParent, /*InsnID*/0,
    1060             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1061             :         // GIR_Coverage, 16080,
    1062             :         GIR_Done,
    1063             :       // Label 66: @565
    1064             :       GIM_Try, /*On fail goto*//*Label 67*/ 581, // Rule ID 16072 //
    1065             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    1066             :         // (add:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (ADD32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    1067             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::ADD32rr,
    1068             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    1069             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1070             :         // GIR_Coverage, 16072,
    1071             :         GIR_Done,
    1072             :       // Label 67: @581
    1073             :       GIM_Reject,
    1074             :     // Label 61: @582
    1075             :     GIM_Reject,
    1076             :     // Label 35: @583
    1077             :     GIM_Try, /*On fail goto*//*Label 68*/ 782,
    1078             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    1079             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    1080             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    1081             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    1082             :       GIM_Try, /*On fail goto*//*Label 69*/ 626, // Rule ID 15940 //
    1083             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 128,
    1084             :         // (add:{ *:[i64] } GR64:{ *:[i64] }:$src1, 128:{ *:[i64] })  =>  (SUB64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, -128:{ *:[i64] })
    1085             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB64ri8,
    1086             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1087             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1088             :         GIR_AddImm, /*InsnID*/0, /*Imm*/-128,
    1089             :         GIR_EraseFromParent, /*InsnID*/0,
    1090             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1091             :         // GIR_Coverage, 15940,
    1092             :         GIR_Done,
    1093             :       // Label 69: @626
    1094             :       GIM_Try, /*On fail goto*//*Label 70*/ 651, // Rule ID 15942 //
    1095             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 2147483648,
    1096             :         // (add:{ *:[i64] } GR64:{ *:[i64] }:$src1, 2147483648:{ *:[i64] })  =>  (SUB64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, -2147483648:{ *:[i64] })
    1097             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB64ri32,
    1098             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1099             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1100             :         GIR_AddImm, /*InsnID*/0, /*Imm*/-2147483648,
    1101             :         GIR_EraseFromParent, /*InsnID*/0,
    1102             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1103             :         // GIR_Coverage, 15942,
    1104             :         GIR_Done,
    1105             :       // Label 70: @651
    1106             :       GIM_Try, /*On fail goto*//*Label 71*/ 675, // Rule ID 16127 //
    1107             :         GIM_CheckFeatures, GIFBS_UseIncDec,
    1108             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
    1109             :         // (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] })  =>  (INC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    1110             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::INC64r,
    1111             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1112             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    1113             :         GIR_EraseFromParent, /*InsnID*/0,
    1114             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1115             :         // GIR_Coverage, 16127,
    1116             :         GIR_Done,
    1117             :       // Label 71: @675
    1118             :       GIM_Try, /*On fail goto*//*Label 72*/ 699, // Rule ID 16131 //
    1119             :         GIM_CheckFeatures, GIFBS_UseIncDec,
    1120             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    1121             :         // (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })  =>  (DEC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    1122             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::DEC64r,
    1123             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1124             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    1125             :         GIR_EraseFromParent, /*InsnID*/0,
    1126             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1127             :         // GIR_Coverage, 16131,
    1128             :         GIR_Done,
    1129             :       // Label 72: @699
    1130             :       GIM_Try, /*On fail goto*//*Label 73*/ 732, // Rule ID 16083 //
    1131             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1132             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1133             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt8,
    1134             :         // MIs[1] Operand 1
    1135             :         // No operand predicates
    1136             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1137             :         // (add:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)  =>  (ADD64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)
    1138             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ADD64ri8,
    1139             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1140             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1141             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1142             :         GIR_EraseFromParent, /*InsnID*/0,
    1143             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1144             :         // GIR_Coverage, 16083,
    1145             :         GIR_Done,
    1146             :       // Label 73: @732
    1147             :       GIM_Try, /*On fail goto*//*Label 74*/ 765, // Rule ID 16084 //
    1148             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1149             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1150             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt32,
    1151             :         // MIs[1] Operand 1
    1152             :         // No operand predicates
    1153             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1154             :         // (add:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)  =>  (ADD64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)
    1155             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ADD64ri32,
    1156             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1157             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1158             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1159             :         GIR_EraseFromParent, /*InsnID*/0,
    1160             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1161             :         // GIR_Coverage, 16084,
    1162             :         GIR_Done,
    1163             :       // Label 74: @765
    1164             :       GIM_Try, /*On fail goto*//*Label 75*/ 781, // Rule ID 16073 //
    1165             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    1166             :         // (add:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (ADD64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    1167             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::ADD64rr,
    1168             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    1169             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1170             :         // GIR_Coverage, 16073,
    1171             :         GIR_Done,
    1172             :       // Label 75: @781
    1173             :       GIM_Reject,
    1174             :     // Label 68: @782
    1175             :     GIM_Reject,
    1176             :     // Label 36: @783
    1177             :     GIM_Try, /*On fail goto*//*Label 76*/ 863,
    1178             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    1179             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    1180             :       GIM_Try, /*On fail goto*//*Label 77*/ 816, // Rule ID 1827 //
    1181             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX,
    1182             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1183             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1184             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1185             :         // (add:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VPADDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    1186             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDQrr,
    1187             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1188             :         // GIR_Coverage, 1827,
    1189             :         GIR_Done,
    1190             :       // Label 77: @816
    1191             :       GIM_Try, /*On fail goto*//*Label 78*/ 839, // Rule ID 1829 //
    1192             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    1193             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1194             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1195             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1196             :         // (add:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (PADDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    1197             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PADDQrr,
    1198             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1199             :         // GIR_Coverage, 1829,
    1200             :         GIR_Done,
    1201             :       // Label 78: @839
    1202             :       GIM_Try, /*On fail goto*//*Label 79*/ 862, // Rule ID 3841 //
    1203             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    1204             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    1205             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    1206             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    1207             :         // (add:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VPADDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    1208             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDQZ128rr,
    1209             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1210             :         // GIR_Coverage, 3841,
    1211             :         GIR_Done,
    1212             :       // Label 79: @862
    1213             :       GIM_Reject,
    1214             :     // Label 76: @863
    1215             :     GIM_Reject,
    1216             :     // Label 37: @864
    1217             :     GIM_Try, /*On fail goto*//*Label 80*/ 1066,
    1218             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    1219             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    1220             :       GIM_Try, /*On fail goto*//*Label 81*/ 935, // Rule ID 12556 //
    1221             :         GIM_CheckFeatures, GIFBS_HasXOP,
    1222             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1223             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    1224             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1225             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
    1226             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
    1227             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1228             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1229             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1230             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1231             :         // (add:{ *:[v4i32] } (mul:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2), VR128:{ *:[v4i32] }:$src3)  =>  (VPMACSDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
    1232             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPMACSDDrr,
    1233             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1234             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
    1235             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
    1236             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src3
    1237             :         GIR_EraseFromParent, /*InsnID*/0,
    1238             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1239             :         // GIR_Coverage, 12556,
    1240             :         GIR_Done,
    1241             :       // Label 81: @935
    1242             :       GIM_Try, /*On fail goto*//*Label 82*/ 996, // Rule ID 18327 //
    1243             :         GIM_CheckFeatures, GIFBS_HasXOP,
    1244             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1245             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1246             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1247             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1248             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
    1249             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
    1250             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1251             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1252             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1253             :         // (add:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, (mul:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2))  =>  (VPMACSDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
    1254             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPMACSDDrr,
    1255             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1256             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
    1257             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
    1258             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src3
    1259             :         GIR_EraseFromParent, /*InsnID*/0,
    1260             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1261             :         // GIR_Coverage, 18327,
    1262             :         GIR_Done,
    1263             :       // Label 82: @996
    1264             :       GIM_Try, /*On fail goto*//*Label 83*/ 1019, // Rule ID 1821 //
    1265             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX,
    1266             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1267             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1268             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1269             :         // (add:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (VPADDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    1270             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDDrr,
    1271             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1272             :         // GIR_Coverage, 1821,
    1273             :         GIR_Done,
    1274             :       // Label 83: @1019
    1275             :       GIM_Try, /*On fail goto*//*Label 84*/ 1042, // Rule ID 1823 //
    1276             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    1277             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1278             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1279             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1280             :         // (add:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (PADDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    1281             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PADDDrr,
    1282             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1283             :         // GIR_Coverage, 1823,
    1284             :         GIR_Done,
    1285             :       // Label 84: @1042
    1286             :       GIM_Try, /*On fail goto*//*Label 85*/ 1065, // Rule ID 3868 //
    1287             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    1288             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    1289             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    1290             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    1291             :         // (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)  =>  (VPADDDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
    1292             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDDZ128rr,
    1293             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1294             :         // GIR_Coverage, 3868,
    1295             :         GIR_Done,
    1296             :       // Label 85: @1065
    1297             :       GIM_Reject,
    1298             :     // Label 80: @1066
    1299             :     GIM_Reject,
    1300             :     // Label 38: @1067
    1301             :     GIM_Try, /*On fail goto*//*Label 86*/ 1124,
    1302             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    1303             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    1304             :       GIM_Try, /*On fail goto*//*Label 87*/ 1100, // Rule ID 1831 //
    1305             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX,
    1306             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    1307             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    1308             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    1309             :         // (add:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VPADDQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    1310             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDQYrr,
    1311             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1312             :         // GIR_Coverage, 1831,
    1313             :         GIR_Done,
    1314             :       // Label 87: @1100
    1315             :       GIM_Try, /*On fail goto*//*Label 88*/ 1123, // Rule ID 3832 //
    1316             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    1317             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    1318             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    1319             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    1320             :         // (add:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VPADDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    1321             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDQZ256rr,
    1322             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1323             :         // GIR_Coverage, 3832,
    1324             :         GIR_Done,
    1325             :       // Label 88: @1123
    1326             :       GIM_Reject,
    1327             :     // Label 86: @1124
    1328             :     GIM_Reject,
    1329             :     // Label 39: @1125
    1330             :     GIM_Try, /*On fail goto*//*Label 89*/ 1327,
    1331             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    1332             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    1333             :       GIM_Try, /*On fail goto*//*Label 90*/ 1196, // Rule ID 12555 //
    1334             :         GIM_CheckFeatures, GIFBS_HasXOP,
    1335             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1336             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    1337             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1338             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
    1339             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
    1340             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1341             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1342             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1343             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1344             :         // (add:{ *:[v8i16] } (mul:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2), VR128:{ *:[v8i16] }:$src3)  =>  (VPMACSWWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
    1345             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPMACSWWrr,
    1346             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1347             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
    1348             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
    1349             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src3
    1350             :         GIR_EraseFromParent, /*InsnID*/0,
    1351             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1352             :         // GIR_Coverage, 12555,
    1353             :         GIR_Done,
    1354             :       // Label 90: @1196
    1355             :       GIM_Try, /*On fail goto*//*Label 91*/ 1257, // Rule ID 18326 //
    1356             :         GIM_CheckFeatures, GIFBS_HasXOP,
    1357             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1358             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1359             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1360             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
    1361             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
    1362             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
    1363             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1364             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1365             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1366             :         // (add:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, (mul:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2))  =>  (VPMACSWWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
    1367             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPMACSWWrr,
    1368             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1369             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
    1370             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src2
    1371             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src3
    1372             :         GIR_EraseFromParent, /*InsnID*/0,
    1373             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1374             :         // GIR_Coverage, 18326,
    1375             :         GIR_Done,
    1376             :       // Label 91: @1257
    1377             :       GIM_Try, /*On fail goto*//*Label 92*/ 1280, // Rule ID 1815 //
    1378             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX_Or_NoBWI,
    1379             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1380             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1381             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1382             :         // (add:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (VPADDWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    1383             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDWrr,
    1384             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1385             :         // GIR_Coverage, 1815,
    1386             :         GIR_Done,
    1387             :       // Label 92: @1280
    1388             :       GIM_Try, /*On fail goto*//*Label 93*/ 1303, // Rule ID 1817 //
    1389             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    1390             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1391             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1392             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1393             :         // (add:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (PADDWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    1394             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PADDWrr,
    1395             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1396             :         // GIR_Coverage, 1817,
    1397             :         GIR_Done,
    1398             :       // Label 93: @1303
    1399             :       GIM_Try, /*On fail goto*//*Label 94*/ 1326, // Rule ID 3889 //
    1400             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    1401             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    1402             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    1403             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    1404             :         // (add:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)  =>  (VPADDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
    1405             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDWZ128rr,
    1406             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1407             :         // GIR_Coverage, 3889,
    1408             :         GIR_Done,
    1409             :       // Label 94: @1326
    1410             :       GIM_Reject,
    1411             :     // Label 89: @1327
    1412             :     GIM_Reject,
    1413             :     // Label 40: @1328
    1414             :     GIM_Try, /*On fail goto*//*Label 95*/ 1385,
    1415             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    1416             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s32,
    1417             :       GIM_Try, /*On fail goto*//*Label 96*/ 1361, // Rule ID 1825 //
    1418             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX,
    1419             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    1420             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    1421             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    1422             :         // (add:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)  =>  (VPADDDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
    1423             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDDYrr,
    1424             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1425             :         // GIR_Coverage, 1825,
    1426             :         GIR_Done,
    1427             :       // Label 96: @1361
    1428             :       GIM_Try, /*On fail goto*//*Label 97*/ 1384, // Rule ID 3859 //
    1429             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    1430             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    1431             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    1432             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    1433             :         // (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)  =>  (VPADDDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
    1434             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDDZ256rr,
    1435             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1436             :         // GIR_Coverage, 3859,
    1437             :         GIR_Done,
    1438             :       // Label 97: @1384
    1439             :       GIM_Reject,
    1440             :     // Label 95: @1385
    1441             :     GIM_Reject,
    1442             :     // Label 41: @1386
    1443             :     GIM_Try, /*On fail goto*//*Label 98*/ 1417, // Rule ID 3823 //
    1444             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    1445             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    1446             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    1447             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    1448             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    1449             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    1450             :       // (add:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VPADDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    1451             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDQZrr,
    1452             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1453             :       // GIR_Coverage, 3823,
    1454             :       GIR_Done,
    1455             :     // Label 98: @1417
    1456             :     GIM_Reject,
    1457             :     // Label 42: @1418
    1458             :     GIM_Try, /*On fail goto*//*Label 99*/ 1498,
    1459             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    1460             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    1461             :       GIM_Try, /*On fail goto*//*Label 100*/ 1451, // Rule ID 1809 //
    1462             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX_Or_NoBWI,
    1463             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1464             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1465             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1466             :         // (add:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)  =>  (VPADDBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
    1467             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDBrr,
    1468             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1469             :         // GIR_Coverage, 1809,
    1470             :         GIR_Done,
    1471             :       // Label 100: @1451
    1472             :       GIM_Try, /*On fail goto*//*Label 101*/ 1474, // Rule ID 1811 //
    1473             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    1474             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1475             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1476             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1477             :         // (add:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)  =>  (PADDBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
    1478             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PADDBrr,
    1479             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1480             :         // GIR_Coverage, 1811,
    1481             :         GIR_Done,
    1482             :       // Label 101: @1474
    1483             :       GIM_Try, /*On fail goto*//*Label 102*/ 1497, // Rule ID 3907 //
    1484             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    1485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    1486             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    1487             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    1488             :         // (add:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)  =>  (VPADDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
    1489             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDBZ128rr,
    1490             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1491             :         // GIR_Coverage, 3907,
    1492             :         GIR_Done,
    1493             :       // Label 102: @1497
    1494             :       GIM_Reject,
    1495             :     // Label 99: @1498
    1496             :     GIM_Reject,
    1497             :     // Label 43: @1499
    1498             :     GIM_Try, /*On fail goto*//*Label 103*/ 1556,
    1499             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s16,
    1500             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s16,
    1501             :       GIM_Try, /*On fail goto*//*Label 104*/ 1532, // Rule ID 1819 //
    1502             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX_Or_NoBWI,
    1503             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    1504             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    1505             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    1506             :         // (add:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)  =>  (VPADDWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
    1507             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDWYrr,
    1508             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1509             :         // GIR_Coverage, 1819,
    1510             :         GIR_Done,
    1511             :       // Label 104: @1532
    1512             :       GIM_Try, /*On fail goto*//*Label 105*/ 1555, // Rule ID 3883 //
    1513             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    1514             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    1515             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    1516             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    1517             :         // (add:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)  =>  (VPADDWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
    1518             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDWZ256rr,
    1519             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1520             :         // GIR_Coverage, 3883,
    1521             :         GIR_Done,
    1522             :       // Label 105: @1555
    1523             :       GIM_Reject,
    1524             :     // Label 103: @1556
    1525             :     GIM_Reject,
    1526             :     // Label 44: @1557
    1527             :     GIM_Try, /*On fail goto*//*Label 106*/ 1588, // Rule ID 3850 //
    1528             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    1529             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    1530             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s32,
    1531             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    1532             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    1533             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    1534             :       // (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)  =>  (VPADDDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
    1535             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDDZrr,
    1536             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1537             :       // GIR_Coverage, 3850,
    1538             :       GIR_Done,
    1539             :     // Label 106: @1588
    1540             :     GIM_Reject,
    1541             :     // Label 45: @1589
    1542             :     GIM_Try, /*On fail goto*//*Label 107*/ 1646,
    1543             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s8,
    1544             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s8,
    1545             :       GIM_Try, /*On fail goto*//*Label 108*/ 1622, // Rule ID 1813 //
    1546             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX_Or_NoBWI,
    1547             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    1548             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    1549             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    1550             :         // (add:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)  =>  (VPADDBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
    1551             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDBYrr,
    1552             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1553             :         // GIR_Coverage, 1813,
    1554             :         GIR_Done,
    1555             :       // Label 108: @1622
    1556             :       GIM_Try, /*On fail goto*//*Label 109*/ 1645, // Rule ID 3901 //
    1557             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    1558             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    1559             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    1560             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    1561             :         // (add:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)  =>  (VPADDBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
    1562             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDBZ256rr,
    1563             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1564             :         // GIR_Coverage, 3901,
    1565             :         GIR_Done,
    1566             :       // Label 109: @1645
    1567             :       GIM_Reject,
    1568             :     // Label 107: @1646
    1569             :     GIM_Reject,
    1570             :     // Label 46: @1647
    1571             :     GIM_Try, /*On fail goto*//*Label 110*/ 1678, // Rule ID 3877 //
    1572             :       GIM_CheckFeatures, GIFBS_HasBWI,
    1573             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s16,
    1574             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s16,
    1575             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    1576             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    1577             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    1578             :       // (add:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)  =>  (VPADDWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
    1579             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDWZrr,
    1580             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1581             :       // GIR_Coverage, 3877,
    1582             :       GIR_Done,
    1583             :     // Label 110: @1678
    1584             :     GIM_Reject,
    1585             :     // Label 47: @1679
    1586             :     GIM_Try, /*On fail goto*//*Label 111*/ 1710, // Rule ID 3895 //
    1587             :       GIM_CheckFeatures, GIFBS_HasBWI,
    1588             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s8,
    1589             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v64s8,
    1590             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    1591             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    1592             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    1593             :       // (add:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)  =>  (VPADDBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
    1594             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPADDBZrr,
    1595             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1596             :       // GIR_Coverage, 3895,
    1597             :       GIR_Done,
    1598             :     // Label 111: @1710
    1599             :     GIM_Reject,
    1600             :     // Label 48: @1711
    1601             :     GIM_Reject,
    1602             :     // Label 1: @1712
    1603             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 25, /*)*//*default:*//*Label 128*/ 2792,
    1604             :     /*GILLT_s8*//*Label 112*/ 1742,
    1605             :     /*GILLT_s16*//*Label 113*/ 1808,
    1606             :     /*GILLT_s32*//*Label 114*/ 1907,
    1607             :     /*GILLT_s64*//*Label 115*/ 2006, 0, 0, 0,
    1608             :     /*GILLT_v2s64*//*Label 116*/ 2108, 0,
    1609             :     /*GILLT_v4s32*//*Label 117*/ 2189,
    1610             :     /*GILLT_v4s64*//*Label 118*/ 2270, 0,
    1611             :     /*GILLT_v8s16*//*Label 119*/ 2328,
    1612             :     /*GILLT_v8s32*//*Label 120*/ 2409,
    1613             :     /*GILLT_v8s64*//*Label 121*/ 2467, 0,
    1614             :     /*GILLT_v16s8*//*Label 122*/ 2499,
    1615             :     /*GILLT_v16s16*//*Label 123*/ 2580,
    1616             :     /*GILLT_v16s32*//*Label 124*/ 2638, 0,
    1617             :     /*GILLT_v32s8*//*Label 125*/ 2670,
    1618             :     /*GILLT_v32s16*//*Label 126*/ 2728, 0,
    1619             :     /*GILLT_v64s8*//*Label 127*/ 2760,
    1620             :     // Label 112: @1742
    1621             :     GIM_Try, /*On fail goto*//*Label 129*/ 1807,
    1622             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s8,
    1623             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s8,
    1624             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR8RegClassID,
    1625             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR8RegClassID,
    1626             :       GIM_Try, /*On fail goto*//*Label 130*/ 1790, // Rule ID 16093 //
    1627             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1628             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1629             :         // MIs[1] Operand 1
    1630             :         // No operand predicates
    1631             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1632             :         // (sub:{ *:[i8] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)  =>  (SUB8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)
    1633             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB8ri,
    1634             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1635             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1636             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1637             :         GIR_EraseFromParent, /*InsnID*/0,
    1638             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1639             :         // GIR_Coverage, 16093,
    1640             :         GIR_Done,
    1641             :       // Label 130: @1790
    1642             :       GIM_Try, /*On fail goto*//*Label 131*/ 1806, // Rule ID 16085 //
    1643             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR8RegClassID,
    1644             :         // (sub:{ *:[i8] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)  =>  (SUB8rr:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)
    1645             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::SUB8rr,
    1646             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    1647             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1648             :         // GIR_Coverage, 16085,
    1649             :         GIR_Done,
    1650             :       // Label 131: @1806
    1651             :       GIM_Reject,
    1652             :     // Label 129: @1807
    1653             :     GIM_Reject,
    1654             :     // Label 113: @1808
    1655             :     GIM_Try, /*On fail goto*//*Label 132*/ 1906,
    1656             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
    1657             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
    1658             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR16RegClassID,
    1659             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR16RegClassID,
    1660             :       GIM_Try, /*On fail goto*//*Label 133*/ 1859, // Rule ID 16096 //
    1661             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1662             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1663             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i16immSExt8,
    1664             :         // MIs[1] Operand 1
    1665             :         // No operand predicates
    1666             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1667             :         // (sub:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)  =>  (SUB16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)
    1668             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB16ri8,
    1669             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1670             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1671             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1672             :         GIR_EraseFromParent, /*InsnID*/0,
    1673             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1674             :         // GIR_Coverage, 16096,
    1675             :         GIR_Done,
    1676             :       // Label 133: @1859
    1677             :       GIM_Try, /*On fail goto*//*Label 134*/ 1889, // Rule ID 16094 //
    1678             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1679             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1680             :         // MIs[1] Operand 1
    1681             :         // No operand predicates
    1682             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1683             :         // (sub:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)  =>  (SUB16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
    1684             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB16ri,
    1685             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1686             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1687             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1688             :         GIR_EraseFromParent, /*InsnID*/0,
    1689             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1690             :         // GIR_Coverage, 16094,
    1691             :         GIR_Done,
    1692             :       // Label 134: @1889
    1693             :       GIM_Try, /*On fail goto*//*Label 135*/ 1905, // Rule ID 16086 //
    1694             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR16RegClassID,
    1695             :         // (sub:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)  =>  (SUB16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
    1696             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::SUB16rr,
    1697             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    1698             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1699             :         // GIR_Coverage, 16086,
    1700             :         GIR_Done,
    1701             :       // Label 135: @1905
    1702             :       GIM_Reject,
    1703             :     // Label 132: @1906
    1704             :     GIM_Reject,
    1705             :     // Label 114: @1907
    1706             :     GIM_Try, /*On fail goto*//*Label 136*/ 2005,
    1707             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    1708             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    1709             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    1710             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    1711             :       GIM_Try, /*On fail goto*//*Label 137*/ 1958, // Rule ID 16097 //
    1712             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1713             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1714             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i32immSExt8,
    1715             :         // MIs[1] Operand 1
    1716             :         // No operand predicates
    1717             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1718             :         // (sub:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)  =>  (SUB32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)
    1719             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB32ri8,
    1720             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1721             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1722             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1723             :         GIR_EraseFromParent, /*InsnID*/0,
    1724             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1725             :         // GIR_Coverage, 16097,
    1726             :         GIR_Done,
    1727             :       // Label 137: @1958
    1728             :       GIM_Try, /*On fail goto*//*Label 138*/ 1988, // Rule ID 16095 //
    1729             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1730             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1731             :         // MIs[1] Operand 1
    1732             :         // No operand predicates
    1733             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1734             :         // (sub:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)  =>  (SUB32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
    1735             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB32ri,
    1736             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1737             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1738             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1739             :         GIR_EraseFromParent, /*InsnID*/0,
    1740             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1741             :         // GIR_Coverage, 16095,
    1742             :         GIR_Done,
    1743             :       // Label 138: @1988
    1744             :       GIM_Try, /*On fail goto*//*Label 139*/ 2004, // Rule ID 16087 //
    1745             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    1746             :         // (sub:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (SUB32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    1747             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::SUB32rr,
    1748             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    1749             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1750             :         // GIR_Coverage, 16087,
    1751             :         GIR_Done,
    1752             :       // Label 139: @2004
    1753             :       GIM_Reject,
    1754             :     // Label 136: @2005
    1755             :     GIM_Reject,
    1756             :     // Label 115: @2006
    1757             :     GIM_Try, /*On fail goto*//*Label 140*/ 2107,
    1758             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    1759             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    1760             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    1761             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    1762             :       GIM_Try, /*On fail goto*//*Label 141*/ 2057, // Rule ID 16098 //
    1763             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1764             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1765             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt8,
    1766             :         // MIs[1] Operand 1
    1767             :         // No operand predicates
    1768             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1769             :         // (sub:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)  =>  (SUB64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)
    1770             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB64ri8,
    1771             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1772             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1773             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1774             :         GIR_EraseFromParent, /*InsnID*/0,
    1775             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1776             :         // GIR_Coverage, 16098,
    1777             :         GIR_Done,
    1778             :       // Label 141: @2057
    1779             :       GIM_Try, /*On fail goto*//*Label 142*/ 2090, // Rule ID 16099 //
    1780             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    1781             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    1782             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt32,
    1783             :         // MIs[1] Operand 1
    1784             :         // No operand predicates
    1785             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    1786             :         // (sub:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)  =>  (SUB64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)
    1787             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SUB64ri32,
    1788             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    1789             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    1790             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    1791             :         GIR_EraseFromParent, /*InsnID*/0,
    1792             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1793             :         // GIR_Coverage, 16099,
    1794             :         GIR_Done,
    1795             :       // Label 142: @2090
    1796             :       GIM_Try, /*On fail goto*//*Label 143*/ 2106, // Rule ID 16088 //
    1797             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    1798             :         // (sub:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (SUB64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    1799             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::SUB64rr,
    1800             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    1801             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1802             :         // GIR_Coverage, 16088,
    1803             :         GIR_Done,
    1804             :       // Label 143: @2106
    1805             :       GIM_Reject,
    1806             :     // Label 140: @2107
    1807             :     GIM_Reject,
    1808             :     // Label 116: @2108
    1809             :     GIM_Try, /*On fail goto*//*Label 144*/ 2188,
    1810             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    1811             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    1812             :       GIM_Try, /*On fail goto*//*Label 145*/ 2141, // Rule ID 1893 //
    1813             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX,
    1814             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1815             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1816             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1817             :         // (sub:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VPSUBQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    1818             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBQrr,
    1819             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1820             :         // GIR_Coverage, 1893,
    1821             :         GIR_Done,
    1822             :       // Label 145: @2141
    1823             :       GIM_Try, /*On fail goto*//*Label 146*/ 2164, // Rule ID 1895 //
    1824             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    1825             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1826             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1827             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1828             :         // (sub:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (PSUBQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    1829             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PSUBQrr,
    1830             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1831             :         // GIR_Coverage, 1895,
    1832             :         GIR_Done,
    1833             :       // Label 146: @2164
    1834             :       GIM_Try, /*On fail goto*//*Label 147*/ 2187, // Rule ID 3931 //
    1835             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    1836             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    1837             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    1838             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    1839             :         // (sub:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VPSUBQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    1840             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBQZ128rr,
    1841             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1842             :         // GIR_Coverage, 3931,
    1843             :         GIR_Done,
    1844             :       // Label 147: @2187
    1845             :       GIM_Reject,
    1846             :     // Label 144: @2188
    1847             :     GIM_Reject,
    1848             :     // Label 117: @2189
    1849             :     GIM_Try, /*On fail goto*//*Label 148*/ 2269,
    1850             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    1851             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    1852             :       GIM_Try, /*On fail goto*//*Label 149*/ 2222, // Rule ID 1887 //
    1853             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX,
    1854             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1855             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1856             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1857             :         // (sub:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (VPSUBDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    1858             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBDrr,
    1859             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1860             :         // GIR_Coverage, 1887,
    1861             :         GIR_Done,
    1862             :       // Label 149: @2222
    1863             :       GIM_Try, /*On fail goto*//*Label 150*/ 2245, // Rule ID 1889 //
    1864             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    1865             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1866             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1867             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1868             :         // (sub:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (PSUBDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    1869             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PSUBDrr,
    1870             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1871             :         // GIR_Coverage, 1889,
    1872             :         GIR_Done,
    1873             :       // Label 150: @2245
    1874             :       GIM_Try, /*On fail goto*//*Label 151*/ 2268, // Rule ID 3958 //
    1875             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    1876             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    1877             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    1878             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    1879             :         // (sub:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)  =>  (VPSUBDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
    1880             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBDZ128rr,
    1881             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1882             :         // GIR_Coverage, 3958,
    1883             :         GIR_Done,
    1884             :       // Label 151: @2268
    1885             :       GIM_Reject,
    1886             :     // Label 148: @2269
    1887             :     GIM_Reject,
    1888             :     // Label 118: @2270
    1889             :     GIM_Try, /*On fail goto*//*Label 152*/ 2327,
    1890             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    1891             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    1892             :       GIM_Try, /*On fail goto*//*Label 153*/ 2303, // Rule ID 1897 //
    1893             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX,
    1894             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    1895             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    1896             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    1897             :         // (sub:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VPSUBQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    1898             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBQYrr,
    1899             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1900             :         // GIR_Coverage, 1897,
    1901             :         GIR_Done,
    1902             :       // Label 153: @2303
    1903             :       GIM_Try, /*On fail goto*//*Label 154*/ 2326, // Rule ID 3922 //
    1904             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    1905             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    1906             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    1907             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    1908             :         // (sub:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VPSUBQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    1909             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBQZ256rr,
    1910             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1911             :         // GIR_Coverage, 3922,
    1912             :         GIR_Done,
    1913             :       // Label 154: @2326
    1914             :       GIM_Reject,
    1915             :     // Label 152: @2327
    1916             :     GIM_Reject,
    1917             :     // Label 119: @2328
    1918             :     GIM_Try, /*On fail goto*//*Label 155*/ 2408,
    1919             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    1920             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    1921             :       GIM_Try, /*On fail goto*//*Label 156*/ 2361, // Rule ID 1881 //
    1922             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX_Or_NoBWI,
    1923             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1924             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1925             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1926             :         // (sub:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (VPSUBWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    1927             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBWrr,
    1928             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1929             :         // GIR_Coverage, 1881,
    1930             :         GIR_Done,
    1931             :       // Label 156: @2361
    1932             :       GIM_Try, /*On fail goto*//*Label 157*/ 2384, // Rule ID 1883 //
    1933             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    1934             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    1935             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    1936             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    1937             :         // (sub:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (PSUBWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    1938             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PSUBWrr,
    1939             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1940             :         // GIR_Coverage, 1883,
    1941             :         GIR_Done,
    1942             :       // Label 157: @2384
    1943             :       GIM_Try, /*On fail goto*//*Label 158*/ 2407, // Rule ID 3979 //
    1944             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    1945             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    1946             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    1947             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    1948             :         // (sub:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)  =>  (VPSUBWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
    1949             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBWZ128rr,
    1950             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1951             :         // GIR_Coverage, 3979,
    1952             :         GIR_Done,
    1953             :       // Label 158: @2407
    1954             :       GIM_Reject,
    1955             :     // Label 155: @2408
    1956             :     GIM_Reject,
    1957             :     // Label 120: @2409
    1958             :     GIM_Try, /*On fail goto*//*Label 159*/ 2466,
    1959             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    1960             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s32,
    1961             :       GIM_Try, /*On fail goto*//*Label 160*/ 2442, // Rule ID 1891 //
    1962             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX,
    1963             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    1964             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    1965             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    1966             :         // (sub:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)  =>  (VPSUBDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
    1967             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBDYrr,
    1968             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1969             :         // GIR_Coverage, 1891,
    1970             :         GIR_Done,
    1971             :       // Label 160: @2442
    1972             :       GIM_Try, /*On fail goto*//*Label 161*/ 2465, // Rule ID 3949 //
    1973             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    1974             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    1975             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    1976             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    1977             :         // (sub:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)  =>  (VPSUBDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
    1978             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBDZ256rr,
    1979             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1980             :         // GIR_Coverage, 3949,
    1981             :         GIR_Done,
    1982             :       // Label 161: @2465
    1983             :       GIM_Reject,
    1984             :     // Label 159: @2466
    1985             :     GIM_Reject,
    1986             :     // Label 121: @2467
    1987             :     GIM_Try, /*On fail goto*//*Label 162*/ 2498, // Rule ID 3913 //
    1988             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    1989             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    1990             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    1991             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    1992             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    1993             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    1994             :       // (sub:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VPSUBQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    1995             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBQZrr,
    1996             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    1997             :       // GIR_Coverage, 3913,
    1998             :       GIR_Done,
    1999             :     // Label 162: @2498
    2000             :     GIM_Reject,
    2001             :     // Label 122: @2499
    2002             :     GIM_Try, /*On fail goto*//*Label 163*/ 2579,
    2003             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    2004             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    2005             :       GIM_Try, /*On fail goto*//*Label 164*/ 2532, // Rule ID 1875 //
    2006             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX_Or_NoBWI,
    2007             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    2008             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    2009             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    2010             :         // (sub:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)  =>  (VPSUBBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
    2011             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBBrr,
    2012             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2013             :         // GIR_Coverage, 1875,
    2014             :         GIR_Done,
    2015             :       // Label 164: @2532
    2016             :       GIM_Try, /*On fail goto*//*Label 165*/ 2555, // Rule ID 1877 //
    2017             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    2018             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    2019             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    2020             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    2021             :         // (sub:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)  =>  (PSUBBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
    2022             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PSUBBrr,
    2023             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2024             :         // GIR_Coverage, 1877,
    2025             :         GIR_Done,
    2026             :       // Label 165: @2555
    2027             :       GIM_Try, /*On fail goto*//*Label 166*/ 2578, // Rule ID 3997 //
    2028             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    2029             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    2030             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    2031             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    2032             :         // (sub:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)  =>  (VPSUBBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
    2033             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBBZ128rr,
    2034             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2035             :         // GIR_Coverage, 3997,
    2036             :         GIR_Done,
    2037             :       // Label 166: @2578
    2038             :       GIM_Reject,
    2039             :     // Label 163: @2579
    2040             :     GIM_Reject,
    2041             :     // Label 123: @2580
    2042             :     GIM_Try, /*On fail goto*//*Label 167*/ 2637,
    2043             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s16,
    2044             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s16,
    2045             :       GIM_Try, /*On fail goto*//*Label 168*/ 2613, // Rule ID 1885 //
    2046             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX_Or_NoBWI,
    2047             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    2048             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    2049             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    2050             :         // (sub:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)  =>  (VPSUBWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
    2051             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBWYrr,
    2052             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2053             :         // GIR_Coverage, 1885,
    2054             :         GIR_Done,
    2055             :       // Label 168: @2613
    2056             :       GIM_Try, /*On fail goto*//*Label 169*/ 2636, // Rule ID 3973 //
    2057             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    2058             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    2059             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    2060             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    2061             :         // (sub:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)  =>  (VPSUBWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
    2062             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBWZ256rr,
    2063             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2064             :         // GIR_Coverage, 3973,
    2065             :         GIR_Done,
    2066             :       // Label 169: @2636
    2067             :       GIM_Reject,
    2068             :     // Label 167: @2637
    2069             :     GIM_Reject,
    2070             :     // Label 124: @2638
    2071             :     GIM_Try, /*On fail goto*//*Label 170*/ 2669, // Rule ID 3940 //
    2072             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    2073             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    2074             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s32,
    2075             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    2076             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    2077             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    2078             :       // (sub:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)  =>  (VPSUBDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
    2079             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBDZrr,
    2080             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2081             :       // GIR_Coverage, 3940,
    2082             :       GIR_Done,
    2083             :     // Label 170: @2669
    2084             :     GIM_Reject,
    2085             :     // Label 125: @2670
    2086             :     GIM_Try, /*On fail goto*//*Label 171*/ 2727,
    2087             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s8,
    2088             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s8,
    2089             :       GIM_Try, /*On fail goto*//*Label 172*/ 2703, // Rule ID 1879 //
    2090             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX_Or_NoBWI,
    2091             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    2092             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    2093             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    2094             :         // (sub:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)  =>  (VPSUBBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
    2095             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBBYrr,
    2096             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2097             :         // GIR_Coverage, 1879,
    2098             :         GIR_Done,
    2099             :       // Label 172: @2703
    2100             :       GIM_Try, /*On fail goto*//*Label 173*/ 2726, // Rule ID 3991 //
    2101             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    2102             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    2103             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    2104             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    2105             :         // (sub:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)  =>  (VPSUBBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
    2106             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBBZ256rr,
    2107             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2108             :         // GIR_Coverage, 3991,
    2109             :         GIR_Done,
    2110             :       // Label 173: @2726
    2111             :       GIM_Reject,
    2112             :     // Label 171: @2727
    2113             :     GIM_Reject,
    2114             :     // Label 126: @2728
    2115             :     GIM_Try, /*On fail goto*//*Label 174*/ 2759, // Rule ID 3967 //
    2116             :       GIM_CheckFeatures, GIFBS_HasBWI,
    2117             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s16,
    2118             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s16,
    2119             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    2120             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    2121             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    2122             :       // (sub:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)  =>  (VPSUBWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
    2123             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBWZrr,
    2124             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2125             :       // GIR_Coverage, 3967,
    2126             :       GIR_Done,
    2127             :     // Label 174: @2759
    2128             :     GIM_Reject,
    2129             :     // Label 127: @2760
    2130             :     GIM_Try, /*On fail goto*//*Label 175*/ 2791, // Rule ID 3985 //
    2131             :       GIM_CheckFeatures, GIFBS_HasBWI,
    2132             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s8,
    2133             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v64s8,
    2134             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    2135             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    2136             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    2137             :       // (sub:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)  =>  (VPSUBBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
    2138             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPSUBBZrr,
    2139             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2140             :       // GIR_Coverage, 3985,
    2141             :       GIR_Done,
    2142             :     // Label 175: @2791
    2143             :     GIM_Reject,
    2144             :     // Label 128: @2792
    2145             :     GIM_Reject,
    2146             :     // Label 2: @2793
    2147             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/2, 23, /*)*//*default:*//*Label 188*/ 3558,
    2148             :     /*GILLT_s16*//*Label 176*/ 2820,
    2149             :     /*GILLT_s32*//*Label 177*/ 2919,
    2150             :     /*GILLT_s64*//*Label 178*/ 3018, 0, 0, 0,
    2151             :     /*GILLT_v2s64*//*Label 179*/ 3120, 0,
    2152             :     /*GILLT_v4s32*//*Label 180*/ 3152,
    2153             :     /*GILLT_v4s64*//*Label 181*/ 3233, 0,
    2154             :     /*GILLT_v8s16*//*Label 182*/ 3265,
    2155             :     /*GILLT_v8s32*//*Label 183*/ 3346,
    2156             :     /*GILLT_v8s64*//*Label 184*/ 3404, 0, 0,
    2157             :     /*GILLT_v16s16*//*Label 185*/ 3436,
    2158             :     /*GILLT_v16s32*//*Label 186*/ 3494, 0, 0,
    2159             :     /*GILLT_v32s16*//*Label 187*/ 3526,
    2160             :     // Label 176: @2820
    2161             :     GIM_Try, /*On fail goto*//*Label 189*/ 2918,
    2162             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
    2163             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
    2164             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR16RegClassID,
    2165             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR16RegClassID,
    2166             :       GIM_Try, /*On fail goto*//*Label 190*/ 2871, // Rule ID 16114 //
    2167             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2168             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2169             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i16immSExt8,
    2170             :         // MIs[1] Operand 1
    2171             :         // No operand predicates
    2172             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2173             :         // (mul:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)  =>  (IMUL16rri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)
    2174             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::IMUL16rri8,
    2175             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2176             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2177             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2178             :         GIR_EraseFromParent, /*InsnID*/0,
    2179             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2180             :         // GIR_Coverage, 16114,
    2181             :         GIR_Done,
    2182             :       // Label 190: @2871
    2183             :       GIM_Try, /*On fail goto*//*Label 191*/ 2901, // Rule ID 16112 //
    2184             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2185             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2186             :         // MIs[1] Operand 1
    2187             :         // No operand predicates
    2188             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2189             :         // (mul:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)  =>  (IMUL16rri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
    2190             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::IMUL16rri,
    2191             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2192             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2193             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2194             :         GIR_EraseFromParent, /*InsnID*/0,
    2195             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2196             :         // GIR_Coverage, 16112,
    2197             :         GIR_Done,
    2198             :       // Label 191: @2901
    2199             :       GIM_Try, /*On fail goto*//*Label 192*/ 2917, // Rule ID 16106 //
    2200             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR16RegClassID,
    2201             :         // (mul:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)  =>  (IMUL16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
    2202             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::IMUL16rr,
    2203             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    2204             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2205             :         // GIR_Coverage, 16106,
    2206             :         GIR_Done,
    2207             :       // Label 192: @2917
    2208             :       GIM_Reject,
    2209             :     // Label 189: @2918
    2210             :     GIM_Reject,
    2211             :     // Label 177: @2919
    2212             :     GIM_Try, /*On fail goto*//*Label 193*/ 3017,
    2213             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2214             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2215             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2216             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2217             :       GIM_Try, /*On fail goto*//*Label 194*/ 2970, // Rule ID 16115 //
    2218             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2219             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2220             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i32immSExt8,
    2221             :         // MIs[1] Operand 1
    2222             :         // No operand predicates
    2223             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2224             :         // (mul:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)  =>  (IMUL32rri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)
    2225             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::IMUL32rri8,
    2226             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2227             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2228             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2229             :         GIR_EraseFromParent, /*InsnID*/0,
    2230             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2231             :         // GIR_Coverage, 16115,
    2232             :         GIR_Done,
    2233             :       // Label 194: @2970
    2234             :       GIM_Try, /*On fail goto*//*Label 195*/ 3000, // Rule ID 16113 //
    2235             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2236             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2237             :         // MIs[1] Operand 1
    2238             :         // No operand predicates
    2239             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2240             :         // (mul:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)  =>  (IMUL32rri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
    2241             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::IMUL32rri,
    2242             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2243             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2244             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2245             :         GIR_EraseFromParent, /*InsnID*/0,
    2246             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2247             :         // GIR_Coverage, 16113,
    2248             :         GIR_Done,
    2249             :       // Label 195: @3000
    2250             :       GIM_Try, /*On fail goto*//*Label 196*/ 3016, // Rule ID 16107 //
    2251             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    2252             :         // (mul:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (IMUL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    2253             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::IMUL32rr,
    2254             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    2255             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2256             :         // GIR_Coverage, 16107,
    2257             :         GIR_Done,
    2258             :       // Label 196: @3016
    2259             :       GIM_Reject,
    2260             :     // Label 193: @3017
    2261             :     GIM_Reject,
    2262             :     // Label 178: @3018
    2263             :     GIM_Try, /*On fail goto*//*Label 197*/ 3119,
    2264             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    2265             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    2266             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    2267             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    2268             :       GIM_Try, /*On fail goto*//*Label 198*/ 3069, // Rule ID 16116 //
    2269             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2270             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2271             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt8,
    2272             :         // MIs[1] Operand 1
    2273             :         // No operand predicates
    2274             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2275             :         // (mul:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)  =>  (IMUL64rri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)
    2276             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::IMUL64rri8,
    2277             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2278             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2279             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2280             :         GIR_EraseFromParent, /*InsnID*/0,
    2281             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2282             :         // GIR_Coverage, 16116,
    2283             :         GIR_Done,
    2284             :       // Label 198: @3069
    2285             :       GIM_Try, /*On fail goto*//*Label 199*/ 3102, // Rule ID 16117 //
    2286             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2287             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2288             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt32,
    2289             :         // MIs[1] Operand 1
    2290             :         // No operand predicates
    2291             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2292             :         // (mul:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)  =>  (IMUL64rri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)
    2293             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::IMUL64rri32,
    2294             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2295             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2296             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2297             :         GIR_EraseFromParent, /*InsnID*/0,
    2298             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2299             :         // GIR_Coverage, 16117,
    2300             :         GIR_Done,
    2301             :       // Label 199: @3102
    2302             :       GIM_Try, /*On fail goto*//*Label 200*/ 3118, // Rule ID 16108 //
    2303             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    2304             :         // (mul:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (IMUL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    2305             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::IMUL64rr,
    2306             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    2307             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2308             :         // GIR_Coverage, 16108,
    2309             :         GIR_Done,
    2310             :       // Label 200: @3118
    2311             :       GIM_Reject,
    2312             :     // Label 197: @3119
    2313             :     GIM_Reject,
    2314             :     // Label 179: @3120
    2315             :     GIM_Try, /*On fail goto*//*Label 201*/ 3151, // Rule ID 4210 //
    2316             :       GIM_CheckFeatures, GIFBS_HasDQI_HasVLX,
    2317             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    2318             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    2319             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    2320             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    2321             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    2322             :       // (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VPMULLQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    2323             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLQZ128rr,
    2324             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2325             :       // GIR_Coverage, 4210,
    2326             :       GIR_Done,
    2327             :     // Label 201: @3151
    2328             :     GIM_Reject,
    2329             :     // Label 180: @3152
    2330             :     GIM_Try, /*On fail goto*//*Label 202*/ 3232,
    2331             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    2332             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    2333             :       GIM_Try, /*On fail goto*//*Label 203*/ 3185, // Rule ID 2515 //
    2334             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX,
    2335             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    2336             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    2337             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    2338             :         // (mul:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (VPMULLDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    2339             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLDrr,
    2340             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2341             :         // GIR_Coverage, 2515,
    2342             :         GIR_Done,
    2343             :       // Label 203: @3185
    2344             :       GIM_Try, /*On fail goto*//*Label 204*/ 3208, // Rule ID 2523 //
    2345             :         GIM_CheckFeatures, GIFBS_UseSSE41,
    2346             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    2347             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    2348             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    2349             :         // (mul:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (PMULLDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    2350             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PMULLDrr,
    2351             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2352             :         // GIR_Coverage, 2523,
    2353             :         GIR_Done,
    2354             :       // Label 204: @3208
    2355             :       GIM_Try, /*On fail goto*//*Label 205*/ 3231, // Rule ID 4165 //
    2356             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    2357             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    2358             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    2359             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    2360             :         // (mul:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)  =>  (VPMULLDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
    2361             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLDZ128rr,
    2362             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2363             :         // GIR_Coverage, 4165,
    2364             :         GIR_Done,
    2365             :       // Label 205: @3231
    2366             :       GIM_Reject,
    2367             :     // Label 202: @3232
    2368             :     GIM_Reject,
    2369             :     // Label 181: @3233
    2370             :     GIM_Try, /*On fail goto*//*Label 206*/ 3264, // Rule ID 4201 //
    2371             :       GIM_CheckFeatures, GIFBS_HasDQI_HasVLX,
    2372             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    2373             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    2374             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    2375             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    2376             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    2377             :       // (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VPMULLQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    2378             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLQZ256rr,
    2379             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2380             :       // GIR_Coverage, 4201,
    2381             :       GIR_Done,
    2382             :     // Label 206: @3264
    2383             :     GIM_Reject,
    2384             :     // Label 182: @3265
    2385             :     GIM_Try, /*On fail goto*//*Label 207*/ 3345,
    2386             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    2387             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    2388             :       GIM_Try, /*On fail goto*//*Label 208*/ 3298, // Rule ID 1857 //
    2389             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX_Or_NoBWI,
    2390             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    2391             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    2392             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    2393             :         // (mul:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (VPMULLWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    2394             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLWrr,
    2395             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2396             :         // GIR_Coverage, 1857,
    2397             :         GIR_Done,
    2398             :       // Label 208: @3298
    2399             :       GIM_Try, /*On fail goto*//*Label 209*/ 3321, // Rule ID 1859 //
    2400             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    2401             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    2402             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    2403             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    2404             :         // (mul:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (PMULLWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    2405             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PMULLWrr,
    2406             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2407             :         // GIR_Coverage, 1859,
    2408             :         GIR_Done,
    2409             :       // Label 209: @3321
    2410             :       GIM_Try, /*On fail goto*//*Label 210*/ 3344, // Rule ID 4186 //
    2411             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    2412             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    2413             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    2414             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    2415             :         // (mul:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)  =>  (VPMULLWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
    2416             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLWZ128rr,
    2417             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2418             :         // GIR_Coverage, 4186,
    2419             :         GIR_Done,
    2420             :       // Label 210: @3344
    2421             :       GIM_Reject,
    2422             :     // Label 207: @3345
    2423             :     GIM_Reject,
    2424             :     // Label 183: @3346
    2425             :     GIM_Try, /*On fail goto*//*Label 211*/ 3403,
    2426             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    2427             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s32,
    2428             :       GIM_Try, /*On fail goto*//*Label 212*/ 3379, // Rule ID 2519 //
    2429             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX,
    2430             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    2431             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    2432             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    2433             :         // (mul:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)  =>  (VPMULLDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
    2434             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLDYrr,
    2435             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2436             :         // GIR_Coverage, 2519,
    2437             :         GIR_Done,
    2438             :       // Label 212: @3379
    2439             :       GIM_Try, /*On fail goto*//*Label 213*/ 3402, // Rule ID 4156 //
    2440             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    2441             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    2442             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    2443             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    2444             :         // (mul:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)  =>  (VPMULLDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
    2445             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLDZ256rr,
    2446             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2447             :         // GIR_Coverage, 4156,
    2448             :         GIR_Done,
    2449             :       // Label 213: @3402
    2450             :       GIM_Reject,
    2451             :     // Label 211: @3403
    2452             :     GIM_Reject,
    2453             :     // Label 184: @3404
    2454             :     GIM_Try, /*On fail goto*//*Label 214*/ 3435, // Rule ID 4192 //
    2455             :       GIM_CheckFeatures, GIFBS_HasDQI,
    2456             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    2457             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    2458             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    2459             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    2460             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    2461             :       // (mul:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VPMULLQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    2462             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLQZrr,
    2463             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2464             :       // GIR_Coverage, 4192,
    2465             :       GIR_Done,
    2466             :     // Label 214: @3435
    2467             :     GIM_Reject,
    2468             :     // Label 185: @3436
    2469             :     GIM_Try, /*On fail goto*//*Label 215*/ 3493,
    2470             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s16,
    2471             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s16,
    2472             :       GIM_Try, /*On fail goto*//*Label 216*/ 3469, // Rule ID 1861 //
    2473             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX_Or_NoBWI,
    2474             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    2475             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    2476             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    2477             :         // (mul:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)  =>  (VPMULLWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
    2478             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLWYrr,
    2479             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2480             :         // GIR_Coverage, 1861,
    2481             :         GIR_Done,
    2482             :       // Label 216: @3469
    2483             :       GIM_Try, /*On fail goto*//*Label 217*/ 3492, // Rule ID 4180 //
    2484             :         GIM_CheckFeatures, GIFBS_HasBWI_HasVLX,
    2485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    2486             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    2487             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    2488             :         // (mul:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)  =>  (VPMULLWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
    2489             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLWZ256rr,
    2490             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2491             :         // GIR_Coverage, 4180,
    2492             :         GIR_Done,
    2493             :       // Label 217: @3492
    2494             :       GIM_Reject,
    2495             :     // Label 215: @3493
    2496             :     GIM_Reject,
    2497             :     // Label 186: @3494
    2498             :     GIM_Try, /*On fail goto*//*Label 218*/ 3525, // Rule ID 4147 //
    2499             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    2500             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    2501             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s32,
    2502             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    2503             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    2504             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    2505             :       // (mul:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)  =>  (VPMULLDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
    2506             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLDZrr,
    2507             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2508             :       // GIR_Coverage, 4147,
    2509             :       GIR_Done,
    2510             :     // Label 218: @3525
    2511             :     GIM_Reject,
    2512             :     // Label 187: @3526
    2513             :     GIM_Try, /*On fail goto*//*Label 219*/ 3557, // Rule ID 4174 //
    2514             :       GIM_CheckFeatures, GIFBS_HasBWI,
    2515             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s16,
    2516             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s16,
    2517             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    2518             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    2519             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    2520             :       // (mul:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)  =>  (VPMULLWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
    2521             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPMULLWZrr,
    2522             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2523             :       // GIR_Coverage, 4174,
    2524             :       GIR_Done,
    2525             :     // Label 219: @3557
    2526             :     GIM_Reject,
    2527             :     // Label 188: @3558
    2528             :     GIM_Reject,
    2529             :     // Label 3: @3559
    2530             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 24, /*)*//*default:*//*Label 235*/ 6763,
    2531             :     /*GILLT_s1*//*Label 220*/ 3589,
    2532             :     /*GILLT_s8*//*Label 221*/ 3887,
    2533             :     /*GILLT_s16*//*Label 222*/ 3953,
    2534             :     /*GILLT_s32*//*Label 223*/ 4052,
    2535             :     /*GILLT_s64*//*Label 224*/ 5213, 0,
    2536             :     /*GILLT_s128*//*Label 225*/ 6085,
    2537             :     /*GILLT_v2s1*//*Label 226*/ 6178,
    2538             :     /*GILLT_v2s64*//*Label 227*/ 6271,
    2539             :     /*GILLT_v4s1*//*Label 228*/ 6352, 0,
    2540             :     /*GILLT_v4s64*//*Label 229*/ 6445,
    2541             :     /*GILLT_v8s1*//*Label 230*/ 6526, 0, 0,
    2542             :     /*GILLT_v8s64*//*Label 231*/ 6635,
    2543             :     /*GILLT_v16s1*//*Label 232*/ 6667, 0, 0, 0,
    2544             :     /*GILLT_v32s1*//*Label 233*/ 6699, 0, 0,
    2545             :     /*GILLT_v64s1*//*Label 234*/ 6731,
    2546             :     // Label 220: @3589
    2547             :     GIM_Try, /*On fail goto*//*Label 236*/ 3886,
    2548             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s1,
    2549             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s1,
    2550             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    2551             :       GIM_Try, /*On fail goto*//*Label 237*/ 3704, // Rule ID 13963 //
    2552             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2553             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    2554             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s1,
    2555             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s1,
    2556             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VK1RegClassID,
    2557             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    2558             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK1RegClassID,
    2559             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2560             :         // (and:{ *:[v1i1] } (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, -1:{ *:[v1i1] }), VK1:{ *:[v1i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v1i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    2561             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    2562             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    2563             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    2564             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    2565             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    2566             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    2567             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    2568             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    2569             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    2570             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/1, /*OpIdx*/1, // src1
    2571             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    2572             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KANDNWrr,
    2573             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    2574             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    2575             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    2576             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    2577             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2578             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2579             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    2580             :         GIR_EraseFromParent, /*InsnID*/0,
    2581             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    2582             :         // GIR_Coverage, 13963,
    2583             :         GIR_Done,
    2584             :       // Label 237: @3704
    2585             :       GIM_Try, /*On fail goto*//*Label 238*/ 3805, // Rule ID 18410 //
    2586             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK1RegClassID,
    2587             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2588             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    2589             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s1,
    2590             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s1,
    2591             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VK1RegClassID,
    2592             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    2593             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2594             :         // (and:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src2, (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, -1:{ *:[v1i1] }))  =>  (COPY_TO_REGCLASS:{ *:[v1i1] } (KANDNWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    2595             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    2596             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    2597             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    2598             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    2599             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    2600             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // src2
    2601             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    2602             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    2603             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    2604             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/1, /*OpIdx*/1, // src1
    2605             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    2606             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KANDNWrr,
    2607             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    2608             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    2609             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    2610             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    2611             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2612             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2613             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    2614             :         GIR_EraseFromParent, /*InsnID*/0,
    2615             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    2616             :         // GIR_Coverage, 18410,
    2617             :         GIR_Done,
    2618             :       // Label 238: @3805
    2619             :       GIM_Try, /*On fail goto*//*Label 239*/ 3885, // Rule ID 13959 //
    2620             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK1RegClassID,
    2621             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK1RegClassID,
    2622             :         // (and:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, VK1:{ *:[v1i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v1i1] } (KANDWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    2623             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    2624             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    2625             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    2626             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    2627             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    2628             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    2629             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    2630             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    2631             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    2632             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2633             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    2634             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KANDWrr,
    2635             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    2636             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    2637             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    2638             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    2639             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    2640             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2641             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    2642             :         GIR_EraseFromParent, /*InsnID*/0,
    2643             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    2644             :         // GIR_Coverage, 13959,
    2645             :         GIR_Done,
    2646             :       // Label 239: @3885
    2647             :       GIM_Reject,
    2648             :     // Label 236: @3886
    2649             :     GIM_Reject,
    2650             :     // Label 221: @3887
    2651             :     GIM_Try, /*On fail goto*//*Label 240*/ 3952,
    2652             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s8,
    2653             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s8,
    2654             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR8RegClassID,
    2655             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR8RegClassID,
    2656             :       GIM_Try, /*On fail goto*//*Label 241*/ 3935, // Rule ID 16170 //
    2657             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2658             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2659             :         // MIs[1] Operand 1
    2660             :         // No operand predicates
    2661             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2662             :         // (and:{ *:[i8] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)  =>  (AND8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)
    2663             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AND8ri,
    2664             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2665             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2666             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2667             :         GIR_EraseFromParent, /*InsnID*/0,
    2668             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2669             :         // GIR_Coverage, 16170,
    2670             :         GIR_Done,
    2671             :       // Label 241: @3935
    2672             :       GIM_Try, /*On fail goto*//*Label 242*/ 3951, // Rule ID 16162 //
    2673             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR8RegClassID,
    2674             :         // (and:{ *:[i8] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)  =>  (AND8rr:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)
    2675             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::AND8rr,
    2676             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    2677             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2678             :         // GIR_Coverage, 16162,
    2679             :         GIR_Done,
    2680             :       // Label 242: @3951
    2681             :       GIM_Reject,
    2682             :     // Label 240: @3952
    2683             :     GIM_Reject,
    2684             :     // Label 222: @3953
    2685             :     GIM_Try, /*On fail goto*//*Label 243*/ 4051,
    2686             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
    2687             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
    2688             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR16RegClassID,
    2689             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR16RegClassID,
    2690             :       GIM_Try, /*On fail goto*//*Label 244*/ 4004, // Rule ID 16173 //
    2691             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2692             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2693             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i16immSExt8,
    2694             :         // MIs[1] Operand 1
    2695             :         // No operand predicates
    2696             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2697             :         // (and:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)  =>  (AND16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)
    2698             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AND16ri8,
    2699             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2700             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2701             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2702             :         GIR_EraseFromParent, /*InsnID*/0,
    2703             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2704             :         // GIR_Coverage, 16173,
    2705             :         GIR_Done,
    2706             :       // Label 244: @4004
    2707             :       GIM_Try, /*On fail goto*//*Label 245*/ 4034, // Rule ID 16171 //
    2708             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2709             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    2710             :         // MIs[1] Operand 1
    2711             :         // No operand predicates
    2712             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2713             :         // (and:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)  =>  (AND16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
    2714             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AND16ri,
    2715             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2716             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    2717             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    2718             :         GIR_EraseFromParent, /*InsnID*/0,
    2719             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2720             :         // GIR_Coverage, 16171,
    2721             :         GIR_Done,
    2722             :       // Label 245: @4034
    2723             :       GIM_Try, /*On fail goto*//*Label 246*/ 4050, // Rule ID 16163 //
    2724             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR16RegClassID,
    2725             :         // (and:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)  =>  (AND16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
    2726             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::AND16rr,
    2727             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    2728             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2729             :         // GIR_Coverage, 16163,
    2730             :         GIR_Done,
    2731             :       // Label 246: @4050
    2732             :       GIM_Reject,
    2733             :     // Label 243: @4051
    2734             :     GIM_Reject,
    2735             :     // Label 223: @4052
    2736             :     GIM_Try, /*On fail goto*//*Label 247*/ 5212,
    2737             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    2738             :       GIM_Try, /*On fail goto*//*Label 248*/ 4153, // Rule ID 18266 //
    2739             :         GIM_CheckFeatures, GIFBS_HasBMI2,
    2740             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2741             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2742             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2743             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
    2744             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2745             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s8,
    2746             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
    2747             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
    2748             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_TRUNC,
    2749             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
    2750             :         GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
    2751             :         GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_SUB,
    2752             :         GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
    2753             :         GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
    2754             :         GIM_CheckConstantInt, /*MI*/3, /*Op*/1, 32,
    2755             :         GIM_CheckRegBankForClass, /*MI*/3, /*Op*/2, /*RC*/X86::GR32RegClassID,
    2756             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    2757             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2758             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    2759             :         GIM_CheckIsSafeToFold, /*InsnID*/3,
    2760             :         // (and:{ *:[i32] } (srl:{ *:[i32] } -1:{ *:[i32] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz))), GR32:{ *:[i32] }:$src)  =>  (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, GR32:{ *:[i32] }:$lz)
    2761             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BZHI32rr,
    2762             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2763             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    2764             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/2, // lz
    2765             :         GIR_EraseFromParent, /*InsnID*/0,
    2766             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2767             :         // GIR_Coverage, 18266,
    2768             :         GIR_Done,
    2769             :       // Label 248: @4153
    2770             :       GIM_Try, /*On fail goto*//*Label 249*/ 4248, // Rule ID 12427 //
    2771             :         GIM_CheckFeatures, GIFBS_HasBMI2,
    2772             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2773             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2774             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2775             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2776             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
    2777             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2778             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s8,
    2779             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
    2780             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
    2781             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_TRUNC,
    2782             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
    2783             :         GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
    2784             :         GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_SUB,
    2785             :         GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
    2786             :         GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
    2787             :         GIM_CheckConstantInt, /*MI*/3, /*Op*/1, 32,
    2788             :         GIM_CheckRegBankForClass, /*MI*/3, /*Op*/2, /*RC*/X86::GR32RegClassID,
    2789             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2790             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    2791             :         GIM_CheckIsSafeToFold, /*InsnID*/3,
    2792             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (srl:{ *:[i32] } -1:{ *:[i32] }, (trunc:{ *:[i8] } (sub:{ *:[i32] } 32:{ *:[i32] }, GR32:{ *:[i32] }:$lz))))  =>  (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, GR32:{ *:[i32] }:$lz)
    2793             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BZHI32rr,
    2794             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2795             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    2796             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/2, // lz
    2797             :         GIR_EraseFromParent, /*InsnID*/0,
    2798             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2799             :         // GIR_Coverage, 12427,
    2800             :         GIR_Done,
    2801             :       // Label 249: @4248
    2802             :       GIM_Try, /*On fail goto*//*Label 250*/ 4323, // Rule ID 18276 //
    2803             :         GIM_CheckFeatures, GIFBS_HasTBM,
    2804             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2805             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2806             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2807             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    2808             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2809             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2810             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2811             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    2812             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    2813             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_XOR,
    2814             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    2815             :         // MIs[2] src
    2816             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    2817             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    2818             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2819             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    2820             :         // (and:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (BLCIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    2821             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCIC32rr,
    2822             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2823             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    2824             :         GIR_EraseFromParent, /*InsnID*/0,
    2825             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2826             :         // GIR_Coverage, 18276,
    2827             :         GIR_Done,
    2828             :       // Label 250: @4323
    2829             :       GIM_Try, /*On fail goto*//*Label 251*/ 4398, // Rule ID 18288 //
    2830             :         GIM_CheckFeatures, GIFBS_HasTBM,
    2831             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2832             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2833             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2834             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    2835             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2836             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2837             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2838             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    2839             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    2840             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_XOR,
    2841             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    2842             :         // MIs[2] src
    2843             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    2844             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    2845             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2846             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    2847             :         // (and:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (TZMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    2848             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::TZMSK32rr,
    2849             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2850             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    2851             :         GIR_EraseFromParent, /*InsnID*/0,
    2852             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2853             :         // GIR_Coverage, 18288,
    2854             :         GIR_Done,
    2855             :       // Label 251: @4398
    2856             :       GIM_Try, /*On fail goto*//*Label 252*/ 4473, // Rule ID 12443 //
    2857             :         GIM_CheckFeatures, GIFBS_HasTBM,
    2858             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2859             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2860             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2861             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    2862             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2863             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2864             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2865             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    2866             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    2867             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    2868             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    2869             :         // MIs[2] src
    2870             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    2871             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 1,
    2872             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2873             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    2874             :         // (and:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))  =>  (BLCIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    2875             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCIC32rr,
    2876             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2877             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    2878             :         GIR_EraseFromParent, /*InsnID*/0,
    2879             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2880             :         // GIR_Coverage, 12443,
    2881             :         GIR_Done,
    2882             :       // Label 252: @4473
    2883             :       GIM_Try, /*On fail goto*//*Label 253*/ 4548, // Rule ID 12455 //
    2884             :         GIM_CheckFeatures, GIFBS_HasTBM,
    2885             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2886             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2887             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2888             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    2889             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2890             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2891             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2892             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    2893             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    2894             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    2895             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    2896             :         // MIs[2] src
    2897             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    2898             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    2899             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2900             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    2901             :         // (and:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (TZMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    2902             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::TZMSK32rr,
    2903             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2904             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    2905             :         GIR_EraseFromParent, /*InsnID*/0,
    2906             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2907             :         // GIR_Coverage, 12455,
    2908             :         GIR_Done,
    2909             :       // Label 253: @4548
    2910             :       GIM_Try, /*On fail goto*//*Label 254*/ 4602, // Rule ID 18270 //
    2911             :         GIM_CheckFeatures, GIFBS_HasTBM,
    2912             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2913             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2914             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    2915             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2916             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2917             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2918             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    2919             :         // MIs[0] src
    2920             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    2921             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2922             :         // (and:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), GR32:{ *:[i32] }:$src)  =>  (BLCFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    2923             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCFILL32rr,
    2924             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2925             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    2926             :         GIR_EraseFromParent, /*InsnID*/0,
    2927             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2928             :         // GIR_Coverage, 18270,
    2929             :         GIR_Done,
    2930             :       // Label 254: @4602
    2931             :       GIM_Try, /*On fail goto*//*Label 255*/ 4656, // Rule ID 18776 //
    2932             :         GIM_CheckFeatures, GIFBS_HasBMI,
    2933             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2934             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2935             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    2936             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2937             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2938             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2939             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    2940             :         // MIs[0] src
    2941             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    2942             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2943             :         // (and:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src)  =>  (BLSR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    2944             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSR32rr,
    2945             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2946             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    2947             :         GIR_EraseFromParent, /*InsnID*/0,
    2948             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2949             :         // GIR_Coverage, 18776,
    2950             :         GIR_Done,
    2951             :       // Label 255: @4656
    2952             :       GIM_Try, /*On fail goto*//*Label 256*/ 4710, // Rule ID 18780 //
    2953             :         GIM_CheckFeatures, GIFBS_HasBMI,
    2954             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2955             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    2956             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
    2957             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    2958             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2959             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, 0,
    2960             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::GR32RegClassID,
    2961             :         // MIs[0] src
    2962             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
    2963             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2964             :         // (and:{ *:[i32] } (sub:{ *:[i32] } 0:{ *:[i32] }, GR32:{ *:[i32] }:$src), GR32:{ *:[i32] }:$src)  =>  (BLSI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    2965             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSI32rr,
    2966             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2967             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src
    2968             :         GIR_EraseFromParent, /*InsnID*/0,
    2969             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2970             :         // GIR_Coverage, 18780,
    2971             :         GIR_Done,
    2972             :       // Label 256: @4710
    2973             :       GIM_Try, /*On fail goto*//*Label 257*/ 4764, // Rule ID 12437 //
    2974             :         GIM_CheckFeatures, GIFBS_HasTBM,
    2975             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2976             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2977             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2978             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    2979             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    2980             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    2981             :         // MIs[1] src
    2982             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    2983             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    2984             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    2985             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))  =>  (BLCFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    2986             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCFILL32rr,
    2987             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    2988             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    2989             :         GIR_EraseFromParent, /*InsnID*/0,
    2990             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    2991             :         // GIR_Coverage, 12437,
    2992             :         GIR_Done,
    2993             :       // Label 257: @4764
    2994             :       GIM_Try, /*On fail goto*//*Label 258*/ 4818, // Rule ID 16479 //
    2995             :         GIM_CheckFeatures, GIFBS_HasBMI,
    2996             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    2997             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    2998             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    2999             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3000             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3001             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    3002             :         // MIs[1] src
    3003             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    3004             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3005             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3006             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (BLSR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    3007             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSR32rr,
    3008             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3009             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    3010             :         GIR_EraseFromParent, /*InsnID*/0,
    3011             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3012             :         // GIR_Coverage, 16479,
    3013             :         GIR_Done,
    3014             :       // Label 258: @4818
    3015             :       GIM_Try, /*On fail goto*//*Label 259*/ 4872, // Rule ID 16483 //
    3016             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3017             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3018             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3019             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3020             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3021             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
    3022             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    3023             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, 0,
    3024             :         // MIs[1] src
    3025             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
    3026             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3027             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src, (sub:{ *:[i32] } 0:{ *:[i32] }, GR32:{ *:[i32] }:$src))  =>  (BLSI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    3028             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSI32rr,
    3029             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3030             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    3031             :         GIR_EraseFromParent, /*InsnID*/0,
    3032             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3033             :         // GIR_Coverage, 16483,
    3034             :         GIR_Done,
    3035             :       // Label 259: @4872
    3036             :       GIM_Try, /*On fail goto*//*Label 260*/ 4923, // Rule ID 15946 //
    3037             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3038             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3039             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3040             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 65535,
    3041             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, 65535:{ *:[i32] })  =>  (MOVZX32rr16:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i16] } GR32:{ *:[i32] }:$src1, sub_16bit:{ *:[i32] }))
    3042             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s16,
    3043             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
    3044             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3045             :         GIR_CopySubReg, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, /*SubRegIdx*/4, // src1
    3046             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3047             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::MOVZX32rr16,
    3048             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3049             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3050             :         GIR_EraseFromParent, /*InsnID*/0,
    3051             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3052             :         // GIR_Coverage, 15946,
    3053             :         GIR_Done,
    3054             :       // Label 260: @4923
    3055             :       GIM_Try, /*On fail goto*//*Label 261*/ 4974, // Rule ID 15947 //
    3056             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3057             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3058             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3059             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 255,
    3060             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, 255:{ *:[i32] })  =>  (MOVZX32rr8:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } GR32:{ *:[i32] }:$src1, sub_8bit:{ *:[i32] }))
    3061             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s8,
    3062             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
    3063             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3064             :         GIR_CopySubReg, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, /*SubRegIdx*/1, // src1
    3065             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3066             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::MOVZX32rr8,
    3067             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3068             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3069             :         GIR_EraseFromParent, /*InsnID*/0,
    3070             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3071             :         // GIR_Coverage, 15947,
    3072             :         GIR_Done,
    3073             :       // Label 261: @4974
    3074             :       GIM_Try, /*On fail goto*//*Label 262*/ 5019, // Rule ID 16174 //
    3075             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3076             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3077             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3078             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3079             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    3080             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i32immSExt8,
    3081             :         // MIs[1] Operand 1
    3082             :         // No operand predicates
    3083             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3084             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)  =>  (AND32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)
    3085             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AND32ri8,
    3086             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3087             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3088             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    3089             :         GIR_EraseFromParent, /*InsnID*/0,
    3090             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3091             :         // GIR_Coverage, 16174,
    3092             :         GIR_Done,
    3093             :       // Label 262: @5019
    3094             :       GIM_Try, /*On fail goto*//*Label 263*/ 5061, // Rule ID 16172 //
    3095             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3096             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3097             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3098             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3099             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    3100             :         // MIs[1] Operand 1
    3101             :         // No operand predicates
    3102             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3103             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)  =>  (AND32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
    3104             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AND32ri,
    3105             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3106             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3107             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    3108             :         GIR_EraseFromParent, /*InsnID*/0,
    3109             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3110             :         // GIR_Coverage, 16172,
    3111             :         GIR_Done,
    3112             :       // Label 263: @5061
    3113             :       GIM_Try, /*On fail goto*//*Label 264*/ 5122, // Rule ID 12457 //
    3114             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3115             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3116             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3117             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3118             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    3119             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    3120             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    3121             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3122             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3123             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    3124             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3125             :         // (and:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src2)  =>  (ANDN32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    3126             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ANDN32rr,
    3127             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3128             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
    3129             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src2
    3130             :         GIR_EraseFromParent, /*InsnID*/0,
    3131             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3132             :         // GIR_Coverage, 12457,
    3133             :         GIR_Done,
    3134             :       // Label 264: @5122
    3135             :       GIM_Try, /*On fail goto*//*Label 265*/ 5183, // Rule ID 18290 //
    3136             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3137             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3138             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3139             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3140             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3141             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    3142             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    3143             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    3144             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3145             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3146             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3147             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src2, (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] }))  =>  (ANDN32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    3148             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ANDN32rr,
    3149             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3150             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
    3151             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src2
    3152             :         GIR_EraseFromParent, /*InsnID*/0,
    3153             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3154             :         // GIR_Coverage, 18290,
    3155             :         GIR_Done,
    3156             :       // Label 265: @5183
    3157             :       GIM_Try, /*On fail goto*//*Label 266*/ 5211, // Rule ID 16164 //
    3158             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3159             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3160             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3161             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    3162             :         // (and:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (AND32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    3163             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::AND32rr,
    3164             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    3165             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3166             :         // GIR_Coverage, 16164,
    3167             :         GIR_Done,
    3168             :       // Label 266: @5211
    3169             :       GIM_Reject,
    3170             :     // Label 247: @5212
    3171             :     GIM_Reject,
    3172             :     // Label 224: @5213
    3173             :     GIM_Try, /*On fail goto*//*Label 267*/ 6084,
    3174             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    3175             :       GIM_Try, /*On fail goto*//*Label 268*/ 5294, // Rule ID 18277 //
    3176             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3177             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3178             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3179             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3180             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3181             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3182             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3183             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3184             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    3185             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    3186             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_XOR,
    3187             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    3188             :         // MIs[2] src
    3189             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    3190             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    3191             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3192             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    3193             :         // (and:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (BLCIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3194             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCIC64rr,
    3195             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3196             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    3197             :         GIR_EraseFromParent, /*InsnID*/0,
    3198             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3199             :         // GIR_Coverage, 18277,
    3200             :         GIR_Done,
    3201             :       // Label 268: @5294
    3202             :       GIM_Try, /*On fail goto*//*Label 269*/ 5369, // Rule ID 18289 //
    3203             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3204             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3205             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3206             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3207             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3208             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3209             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3210             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3211             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3212             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    3213             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_XOR,
    3214             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    3215             :         // MIs[2] src
    3216             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    3217             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    3218             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3219             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    3220             :         // (and:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (TZMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3221             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::TZMSK64rr,
    3222             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3223             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    3224             :         GIR_EraseFromParent, /*InsnID*/0,
    3225             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3226             :         // GIR_Coverage, 18289,
    3227             :         GIR_Done,
    3228             :       // Label 269: @5369
    3229             :       GIM_Try, /*On fail goto*//*Label 270*/ 5444, // Rule ID 12444 //
    3230             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3231             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3232             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3233             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3234             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    3235             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3236             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3237             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3238             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3239             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    3240             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    3241             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    3242             :         // MIs[2] src
    3243             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    3244             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 1,
    3245             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3246             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    3247             :         // (and:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))  =>  (BLCIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3248             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCIC64rr,
    3249             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3250             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    3251             :         GIR_EraseFromParent, /*InsnID*/0,
    3252             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3253             :         // GIR_Coverage, 12444,
    3254             :         GIR_Done,
    3255             :       // Label 270: @5444
    3256             :       GIM_Try, /*On fail goto*//*Label 271*/ 5519, // Rule ID 12456 //
    3257             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3258             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3259             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3260             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3261             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    3262             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3263             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3264             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3265             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3266             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    3267             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    3268             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    3269             :         // MIs[2] src
    3270             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    3271             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    3272             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3273             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    3274             :         // (and:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (TZMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3275             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::TZMSK64rr,
    3276             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3277             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    3278             :         GIR_EraseFromParent, /*InsnID*/0,
    3279             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3280             :         // GIR_Coverage, 12456,
    3281             :         GIR_Done,
    3282             :       // Label 271: @5519
    3283             :       GIM_Try, /*On fail goto*//*Label 272*/ 5573, // Rule ID 18271 //
    3284             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3285             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3286             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3287             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3288             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3289             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3290             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3291             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    3292             :         // MIs[0] src
    3293             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    3294             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3295             :         // (and:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), GR64:{ *:[i64] }:$src)  =>  (BLCFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3296             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCFILL64rr,
    3297             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3298             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    3299             :         GIR_EraseFromParent, /*InsnID*/0,
    3300             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3301             :         // GIR_Coverage, 18271,
    3302             :         GIR_Done,
    3303             :       // Label 272: @5573
    3304             :       GIM_Try, /*On fail goto*//*Label 273*/ 5627, // Rule ID 18777 //
    3305             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3306             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3307             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3308             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3309             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3310             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3311             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3312             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3313             :         // MIs[0] src
    3314             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    3315             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3316             :         // (and:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src)  =>  (BLSR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3317             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSR64rr,
    3318             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3319             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    3320             :         GIR_EraseFromParent, /*InsnID*/0,
    3321             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3322             :         // GIR_Coverage, 18777,
    3323             :         GIR_Done,
    3324             :       // Label 273: @5627
    3325             :       GIM_Try, /*On fail goto*//*Label 274*/ 5681, // Rule ID 18781 //
    3326             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3327             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3328             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3329             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
    3330             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3331             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3332             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, 0,
    3333             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::GR64RegClassID,
    3334             :         // MIs[0] src
    3335             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
    3336             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3337             :         // (and:{ *:[i64] } (sub:{ *:[i64] } 0:{ *:[i64] }, GR64:{ *:[i64] }:$src), GR64:{ *:[i64] }:$src)  =>  (BLSI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3338             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSI64rr,
    3339             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3340             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src
    3341             :         GIR_EraseFromParent, /*InsnID*/0,
    3342             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3343             :         // GIR_Coverage, 18781,
    3344             :         GIR_Done,
    3345             :       // Label 274: @5681
    3346             :       GIM_Try, /*On fail goto*//*Label 275*/ 5735, // Rule ID 12438 //
    3347             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3348             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3349             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3350             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3351             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3352             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3353             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3354             :         // MIs[1] src
    3355             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    3356             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    3357             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3358             :         // (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))  =>  (BLCFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3359             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCFILL64rr,
    3360             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3361             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    3362             :         GIR_EraseFromParent, /*InsnID*/0,
    3363             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3364             :         // GIR_Coverage, 12438,
    3365             :         GIR_Done,
    3366             :       // Label 275: @5735
    3367             :       GIM_Try, /*On fail goto*//*Label 276*/ 5789, // Rule ID 16480 //
    3368             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3369             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3370             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3371             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3372             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3373             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3374             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3375             :         // MIs[1] src
    3376             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    3377             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3378             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3379             :         // (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (BLSR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3380             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSR64rr,
    3381             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3382             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    3383             :         GIR_EraseFromParent, /*InsnID*/0,
    3384             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3385             :         // GIR_Coverage, 16480,
    3386             :         GIR_Done,
    3387             :       // Label 276: @5789
    3388             :       GIM_Try, /*On fail goto*//*Label 277*/ 5843, // Rule ID 16484 //
    3389             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3390             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3391             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3392             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3393             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3394             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
    3395             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3396             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, 0,
    3397             :         // MIs[1] src
    3398             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
    3399             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3400             :         // (and:{ *:[i64] } GR64:{ *:[i64] }:$src, (sub:{ *:[i64] } 0:{ *:[i64] }, GR64:{ *:[i64] }:$src))  =>  (BLSI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    3401             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSI64rr,
    3402             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3403             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    3404             :         GIR_EraseFromParent, /*InsnID*/0,
    3405             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3406             :         // GIR_Coverage, 16484,
    3407             :         GIR_Done,
    3408             :       // Label 277: @5843
    3409             :       GIM_Try, /*On fail goto*//*Label 278*/ 5888, // Rule ID 16175 //
    3410             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3411             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3412             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3413             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3414             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    3415             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt8,
    3416             :         // MIs[1] Operand 1
    3417             :         // No operand predicates
    3418             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3419             :         // (and:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)  =>  (AND64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)
    3420             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AND64ri8,
    3421             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3422             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3423             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    3424             :         GIR_EraseFromParent, /*InsnID*/0,
    3425             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3426             :         // GIR_Coverage, 16175,
    3427             :         GIR_Done,
    3428             :       // Label 278: @5888
    3429             :       GIM_Try, /*On fail goto*//*Label 279*/ 5933, // Rule ID 16176 //
    3430             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3431             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3432             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3433             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3434             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    3435             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt32,
    3436             :         // MIs[1] Operand 1
    3437             :         // No operand predicates
    3438             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3439             :         // (and:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)  =>  (AND64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)
    3440             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AND64ri32,
    3441             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3442             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3443             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    3444             :         GIR_EraseFromParent, /*InsnID*/0,
    3445             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3446             :         // GIR_Coverage, 16176,
    3447             :         GIR_Done,
    3448             :       // Label 279: @5933
    3449             :       GIM_Try, /*On fail goto*//*Label 280*/ 5994, // Rule ID 12458 //
    3450             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3451             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3452             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3453             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3454             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    3455             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3456             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3457             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3458             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3459             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    3460             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3461             :         // (and:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src2)  =>  (ANDN64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    3462             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ANDN64rr,
    3463             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3464             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
    3465             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src2
    3466             :         GIR_EraseFromParent, /*InsnID*/0,
    3467             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3468             :         // GIR_Coverage, 12458,
    3469             :         GIR_Done,
    3470             :       // Label 280: @5994
    3471             :       GIM_Try, /*On fail goto*//*Label 281*/ 6055, // Rule ID 18291 //
    3472             :         GIM_CheckFeatures, GIFBS_HasBMI,
    3473             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3474             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3475             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3476             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3477             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    3478             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    3479             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    3480             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3481             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3482             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3483             :         // (and:{ *:[i64] } GR64:{ *:[i64] }:$src2, (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] }))  =>  (ANDN64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    3484             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::ANDN64rr,
    3485             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3486             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
    3487             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src2
    3488             :         GIR_EraseFromParent, /*InsnID*/0,
    3489             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3490             :         // GIR_Coverage, 18291,
    3491             :         GIR_Done,
    3492             :       // Label 281: @6055
    3493             :       GIM_Try, /*On fail goto*//*Label 282*/ 6083, // Rule ID 16165 //
    3494             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    3495             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    3496             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    3497             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    3498             :         // (and:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (AND64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    3499             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::AND64rr,
    3500             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    3501             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3502             :         // GIR_Coverage, 16165,
    3503             :         GIR_Done,
    3504             :       // Label 282: @6083
    3505             :       GIM_Reject,
    3506             :     // Label 267: @6084
    3507             :     GIM_Reject,
    3508             :     // Label 225: @6085
    3509             :     GIM_Try, /*On fail goto*//*Label 283*/ 6177, // Rule ID 13438 //
    3510             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s128,
    3511             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s128,
    3512             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR128RegClassID,
    3513             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR128RegClassID,
    3514             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::FR128RegClassID,
    3515             :       // (and:{ *:[i128] } FR128:{ *:[i128] }:$src1, FR128:{ *:[i128] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[i128] } (ANDPSrr:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } FR128:{ *:[i128] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i8] } FR128:{ *:[i128] }:$src2, VR128:{ *:[i32] })), FR128:{ *:[i32] })
    3516             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    3517             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    3518             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
    3519             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    3520             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    3521             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    3522             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    3523             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3524             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3525             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3526             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3527             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::ANDPSrr,
    3528             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3529             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3530             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    3531             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3532             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3533             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3534             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3535             :       GIR_EraseFromParent, /*InsnID*/0,
    3536             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC FR128*/74,
    3537             :       // GIR_Coverage, 13438,
    3538             :       GIR_Done,
    3539             :     // Label 283: @6177
    3540             :     GIM_Reject,
    3541             :     // Label 226: @6178
    3542             :     GIM_Try, /*On fail goto*//*Label 284*/ 6270, // Rule ID 13960 //
    3543             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s1,
    3544             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s1,
    3545             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    3546             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK2RegClassID,
    3547             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK2RegClassID,
    3548             :       // (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, VK2:{ *:[v2i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v2i1] } (KANDWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    3549             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    3550             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    3551             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    3552             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    3553             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    3554             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    3555             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    3556             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3557             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3558             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3559             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3560             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KANDWrr,
    3561             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3562             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3563             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    3564             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3565             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3566             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3567             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3568             :       GIR_EraseFromParent, /*InsnID*/0,
    3569             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    3570             :       // GIR_Coverage, 13960,
    3571             :       GIR_Done,
    3572             :     // Label 284: @6270
    3573             :     GIM_Reject,
    3574             :     // Label 227: @6271
    3575             :     GIM_Try, /*On fail goto*//*Label 285*/ 6351,
    3576             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    3577             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    3578             :       GIM_Try, /*On fail goto*//*Label 286*/ 6304, // Rule ID 1549 //
    3579             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX,
    3580             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    3581             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    3582             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    3583             :         // (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VPANDrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    3584             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPANDrr,
    3585             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3586             :         // GIR_Coverage, 1549,
    3587             :         GIR_Done,
    3588             :       // Label 286: @6304
    3589             :       GIM_Try, /*On fail goto*//*Label 287*/ 6327, // Rule ID 1551 //
    3590             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    3591             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    3592             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    3593             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    3594             :         // (and:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (PANDrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    3595             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PANDrr,
    3596             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3597             :         // GIR_Coverage, 1551,
    3598             :         GIR_Done,
    3599             :       // Label 287: @6327
    3600             :       GIM_Try, /*On fail goto*//*Label 288*/ 6350, // Rule ID 4894 //
    3601             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    3602             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    3603             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    3604             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    3605             :         // (and:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VPANDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    3606             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPANDQZ128rr,
    3607             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3608             :         // GIR_Coverage, 4894,
    3609             :         GIR_Done,
    3610             :       // Label 288: @6350
    3611             :       GIM_Reject,
    3612             :     // Label 285: @6351
    3613             :     GIM_Reject,
    3614             :     // Label 228: @6352
    3615             :     GIM_Try, /*On fail goto*//*Label 289*/ 6444, // Rule ID 13961 //
    3616             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s1,
    3617             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s1,
    3618             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    3619             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK4RegClassID,
    3620             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK4RegClassID,
    3621             :       // (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, VK4:{ *:[v4i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v4i1] } (KANDWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    3622             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    3623             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    3624             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    3625             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    3626             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    3627             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    3628             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    3629             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3630             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3631             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3632             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3633             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KANDWrr,
    3634             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3635             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3636             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    3637             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3638             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3639             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3640             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3641             :       GIR_EraseFromParent, /*InsnID*/0,
    3642             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    3643             :       // GIR_Coverage, 13961,
    3644             :       GIR_Done,
    3645             :     // Label 289: @6444
    3646             :     GIM_Reject,
    3647             :     // Label 229: @6445
    3648             :     GIM_Try, /*On fail goto*//*Label 290*/ 6525,
    3649             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    3650             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    3651             :       GIM_Try, /*On fail goto*//*Label 291*/ 6478, // Rule ID 1553 //
    3652             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX,
    3653             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    3654             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    3655             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    3656             :         // (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VPANDYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    3657             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPANDYrr,
    3658             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3659             :         // GIR_Coverage, 1553,
    3660             :         GIR_Done,
    3661             :       // Label 291: @6478
    3662             :       GIM_Try, /*On fail goto*//*Label 292*/ 6501, // Rule ID 4885 //
    3663             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    3664             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    3665             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    3666             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    3667             :         // (and:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VPANDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    3668             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPANDQZ256rr,
    3669             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3670             :         // GIR_Coverage, 4885,
    3671             :         GIR_Done,
    3672             :       // Label 292: @6501
    3673             :       GIM_Try, /*On fail goto*//*Label 293*/ 6524, // Rule ID 12726 //
    3674             :         GIM_CheckFeatures, GIFBS_HasAVX1Only,
    3675             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    3676             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    3677             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    3678             :         // (and:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VANDPSYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    3679             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VANDPSYrr,
    3680             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3681             :         // GIR_Coverage, 12726,
    3682             :         GIR_Done,
    3683             :       // Label 293: @6524
    3684             :       GIM_Reject,
    3685             :     // Label 290: @6525
    3686             :     GIM_Reject,
    3687             :     // Label 230: @6526
    3688             :     GIM_Try, /*On fail goto*//*Label 294*/ 6634,
    3689             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s1,
    3690             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s1,
    3691             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK8RegClassID,
    3692             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK8RegClassID,
    3693             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK8RegClassID,
    3694             :       GIM_Try, /*On fail goto*//*Label 295*/ 6559, // Rule ID 3609 //
    3695             :         GIM_CheckFeatures, GIFBS_HasDQI,
    3696             :         // (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)  =>  (KANDBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
    3697             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KANDBrr,
    3698             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3699             :         // GIR_Coverage, 3609,
    3700             :         GIR_Done,
    3701             :       // Label 295: @6559
    3702             :       GIM_Try, /*On fail goto*//*Label 296*/ 6633, // Rule ID 13958 //
    3703             :         GIM_CheckFeatures, GIFBS_NoDQI,
    3704             :         // (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v8i1] } (KANDWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
    3705             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    3706             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    3707             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    3708             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    3709             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    3710             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    3711             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    3712             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3713             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3714             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3715             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3716             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KANDWrr,
    3717             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3718             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3719             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    3720             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3721             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3722             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3723             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3724             :         GIR_EraseFromParent, /*InsnID*/0,
    3725             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK8*/12,
    3726             :         // GIR_Coverage, 13958,
    3727             :         GIR_Done,
    3728             :       // Label 296: @6633
    3729             :       GIM_Reject,
    3730             :     // Label 294: @6634
    3731             :     GIM_Reject,
    3732             :     // Label 231: @6635
    3733             :     GIM_Try, /*On fail goto*//*Label 297*/ 6666, // Rule ID 4876 //
    3734             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    3735             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    3736             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    3737             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    3738             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    3739             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    3740             :       // (and:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VPANDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    3741             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPANDQZrr,
    3742             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3743             :       // GIR_Coverage, 4876,
    3744             :       GIR_Done,
    3745             :     // Label 297: @6666
    3746             :     GIM_Reject,
    3747             :     // Label 232: @6667
    3748             :     GIM_Try, /*On fail goto*//*Label 298*/ 6698, // Rule ID 3610 //
    3749             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    3750             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s1,
    3751             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s1,
    3752             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK16RegClassID,
    3753             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK16RegClassID,
    3754             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK16RegClassID,
    3755             :       // (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)  =>  (KANDWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
    3756             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KANDWrr,
    3757             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3758             :       // GIR_Coverage, 3610,
    3759             :       GIR_Done,
    3760             :     // Label 298: @6698
    3761             :     GIM_Reject,
    3762             :     // Label 233: @6699
    3763             :     GIM_Try, /*On fail goto*//*Label 299*/ 6730, // Rule ID 3611 //
    3764             :       GIM_CheckFeatures, GIFBS_HasBWI,
    3765             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s1,
    3766             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s1,
    3767             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK32RegClassID,
    3768             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK32RegClassID,
    3769             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK32RegClassID,
    3770             :       // (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)  =>  (KANDDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
    3771             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KANDDrr,
    3772             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3773             :       // GIR_Coverage, 3611,
    3774             :       GIR_Done,
    3775             :     // Label 299: @6730
    3776             :     GIM_Reject,
    3777             :     // Label 234: @6731
    3778             :     GIM_Try, /*On fail goto*//*Label 300*/ 6762, // Rule ID 3612 //
    3779             :       GIM_CheckFeatures, GIFBS_HasBWI,
    3780             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s1,
    3781             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v64s1,
    3782             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK64RegClassID,
    3783             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK64RegClassID,
    3784             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK64RegClassID,
    3785             :       // (and:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)  =>  (KANDQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
    3786             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KANDQrr,
    3787             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3788             :       // GIR_Coverage, 3612,
    3789             :       GIR_Done,
    3790             :     // Label 300: @6762
    3791             :     GIM_Reject,
    3792             :     // Label 235: @6763
    3793             :     GIM_Reject,
    3794             :     // Label 4: @6764
    3795             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 24, /*)*//*default:*//*Label 316*/ 9527,
    3796             :     /*GILLT_s1*//*Label 301*/ 6794,
    3797             :     /*GILLT_s8*//*Label 302*/ 6887,
    3798             :     /*GILLT_s16*//*Label 303*/ 6953,
    3799             :     /*GILLT_s32*//*Label 304*/ 7052,
    3800             :     /*GILLT_s64*//*Label 305*/ 7949, 0,
    3801             :     /*GILLT_s128*//*Label 306*/ 8849,
    3802             :     /*GILLT_v2s1*//*Label 307*/ 8942,
    3803             :     /*GILLT_v2s64*//*Label 308*/ 9035,
    3804             :     /*GILLT_v4s1*//*Label 309*/ 9116, 0,
    3805             :     /*GILLT_v4s64*//*Label 310*/ 9209,
    3806             :     /*GILLT_v8s1*//*Label 311*/ 9290, 0, 0,
    3807             :     /*GILLT_v8s64*//*Label 312*/ 9399,
    3808             :     /*GILLT_v16s1*//*Label 313*/ 9431, 0, 0, 0,
    3809             :     /*GILLT_v32s1*//*Label 314*/ 9463, 0, 0,
    3810             :     /*GILLT_v64s1*//*Label 315*/ 9495,
    3811             :     // Label 301: @6794
    3812             :     GIM_Try, /*On fail goto*//*Label 317*/ 6886, // Rule ID 13967 //
    3813             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s1,
    3814             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s1,
    3815             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    3816             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK1RegClassID,
    3817             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK1RegClassID,
    3818             :       // (or:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, VK1:{ *:[v1i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v1i1] } (KORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    3819             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    3820             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    3821             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    3822             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    3823             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    3824             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    3825             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    3826             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    3827             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    3828             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3829             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    3830             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KORWrr,
    3831             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    3832             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    3833             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    3834             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    3835             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    3836             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3837             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    3838             :       GIR_EraseFromParent, /*InsnID*/0,
    3839             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    3840             :       // GIR_Coverage, 13967,
    3841             :       GIR_Done,
    3842             :     // Label 317: @6886
    3843             :     GIM_Reject,
    3844             :     // Label 302: @6887
    3845             :     GIM_Try, /*On fail goto*//*Label 318*/ 6952,
    3846             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s8,
    3847             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s8,
    3848             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR8RegClassID,
    3849             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR8RegClassID,
    3850             :       GIM_Try, /*On fail goto*//*Label 319*/ 6935, // Rule ID 16140 //
    3851             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3852             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    3853             :         // MIs[1] Operand 1
    3854             :         // No operand predicates
    3855             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3856             :         // (or:{ *:[i8] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)  =>  (OR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)
    3857             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::OR8ri,
    3858             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3859             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3860             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    3861             :         GIR_EraseFromParent, /*InsnID*/0,
    3862             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3863             :         // GIR_Coverage, 16140,
    3864             :         GIR_Done,
    3865             :       // Label 319: @6935
    3866             :       GIM_Try, /*On fail goto*//*Label 320*/ 6951, // Rule ID 16132 //
    3867             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR8RegClassID,
    3868             :         // (or:{ *:[i8] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)  =>  (OR8rr:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)
    3869             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::OR8rr,
    3870             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    3871             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3872             :         // GIR_Coverage, 16132,
    3873             :         GIR_Done,
    3874             :       // Label 320: @6951
    3875             :       GIM_Reject,
    3876             :     // Label 318: @6952
    3877             :     GIM_Reject,
    3878             :     // Label 303: @6953
    3879             :     GIM_Try, /*On fail goto*//*Label 321*/ 7051,
    3880             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
    3881             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
    3882             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR16RegClassID,
    3883             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR16RegClassID,
    3884             :       GIM_Try, /*On fail goto*//*Label 322*/ 7004, // Rule ID 16143 //
    3885             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3886             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    3887             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i16immSExt8,
    3888             :         // MIs[1] Operand 1
    3889             :         // No operand predicates
    3890             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3891             :         // (or:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)  =>  (OR16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)
    3892             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::OR16ri8,
    3893             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3894             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3895             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    3896             :         GIR_EraseFromParent, /*InsnID*/0,
    3897             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3898             :         // GIR_Coverage, 16143,
    3899             :         GIR_Done,
    3900             :       // Label 322: @7004
    3901             :       GIM_Try, /*On fail goto*//*Label 323*/ 7034, // Rule ID 16141 //
    3902             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    3903             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    3904             :         // MIs[1] Operand 1
    3905             :         // No operand predicates
    3906             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3907             :         // (or:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)  =>  (OR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
    3908             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::OR16ri,
    3909             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3910             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    3911             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    3912             :         GIR_EraseFromParent, /*InsnID*/0,
    3913             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3914             :         // GIR_Coverage, 16141,
    3915             :         GIR_Done,
    3916             :       // Label 323: @7034
    3917             :       GIM_Try, /*On fail goto*//*Label 324*/ 7050, // Rule ID 16133 //
    3918             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR16RegClassID,
    3919             :         // (or:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)  =>  (OR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
    3920             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::OR16rr,
    3921             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    3922             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3923             :         // GIR_Coverage, 16133,
    3924             :         GIR_Done,
    3925             :       // Label 324: @7050
    3926             :       GIM_Reject,
    3927             :     // Label 321: @7051
    3928             :     GIM_Reject,
    3929             :     // Label 304: @7052
    3930             :     GIM_Try, /*On fail goto*//*Label 325*/ 7948,
    3931             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    3932             :       GIM_Try, /*On fail goto*//*Label 326*/ 7133, // Rule ID 18284 //
    3933             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3934             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3935             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3936             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3937             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3938             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    3939             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    3940             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3941             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    3942             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    3943             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_XOR,
    3944             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    3945             :         // MIs[2] src
    3946             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    3947             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    3948             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3949             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    3950             :         // (or:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (BLSIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    3951             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSIC32rr,
    3952             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3953             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    3954             :         GIR_EraseFromParent, /*InsnID*/0,
    3955             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3956             :         // GIR_Coverage, 18284,
    3957             :         GIR_Done,
    3958             :       // Label 326: @7133
    3959             :       GIM_Try, /*On fail goto*//*Label 327*/ 7208, // Rule ID 18286 //
    3960             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3961             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    3962             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3963             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3964             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    3965             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    3966             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    3967             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3968             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    3969             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    3970             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_XOR,
    3971             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    3972             :         // MIs[2] src
    3973             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    3974             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    3975             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    3976             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    3977             :         // (or:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (T1MSKC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    3978             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::T1MSKC32rr,
    3979             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    3980             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    3981             :         GIR_EraseFromParent, /*InsnID*/0,
    3982             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    3983             :         // GIR_Coverage, 18286,
    3984             :         GIR_Done,
    3985             :       // Label 327: @7208
    3986             :       GIM_Try, /*On fail goto*//*Label 328*/ 7283, // Rule ID 18272 //
    3987             :         GIM_CheckFeatures, GIFBS_HasTBM,
    3988             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    3989             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    3990             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    3991             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    3992             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    3993             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
    3994             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    3995             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
    3996             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    3997             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/X86::GR32RegClassID,
    3998             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 1,
    3999             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4000             :         // MIs[0] src
    4001             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
    4002             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4003             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4004             :         // (or:{ *:[i32] } (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), -1:{ *:[i32] }), GR32:{ *:[i32] }:$src)  =>  (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4005             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCI32rr,
    4006             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4007             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src
    4008             :         GIR_EraseFromParent, /*InsnID*/0,
    4009             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4010             :         // GIR_Coverage, 18272,
    4011             :         GIR_Done,
    4012             :       // Label 328: @7283
    4013             :       GIM_Try, /*On fail goto*//*Label 329*/ 7358, // Rule ID 12451 //
    4014             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4015             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4016             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4017             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4018             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4019             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4020             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4021             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4022             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4023             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    4024             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    4025             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    4026             :         // MIs[2] src
    4027             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    4028             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    4029             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4030             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4031             :         // (or:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (BLSIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4032             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSIC32rr,
    4033             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4034             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4035             :         GIR_EraseFromParent, /*InsnID*/0,
    4036             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4037             :         // GIR_Coverage, 12451,
    4038             :         GIR_Done,
    4039             :       // Label 329: @7358
    4040             :       GIM_Try, /*On fail goto*//*Label 330*/ 7433, // Rule ID 12453 //
    4041             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4042             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4043             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4044             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4045             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4046             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4047             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4048             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4049             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4050             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    4051             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    4052             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    4053             :         // MIs[2] src
    4054             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    4055             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 1,
    4056             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4057             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4058             :         // (or:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))  =>  (T1MSKC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4059             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::T1MSKC32rr,
    4060             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4061             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4062             :         GIR_EraseFromParent, /*InsnID*/0,
    4063             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4064             :         // GIR_Coverage, 12453,
    4065             :         GIR_Done,
    4066             :       // Label 330: @7433
    4067             :       GIM_Try, /*On fail goto*//*Label 331*/ 7508, // Rule ID 12439 //
    4068             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4069             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4070             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4071             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4072             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4073             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4074             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4075             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4076             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
    4077             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    4078             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
    4079             :         // MIs[2] src
    4080             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    4081             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 1,
    4082             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4083             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4084             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4085             :         // (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), -1:{ *:[i32] }))  =>  (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4086             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCI32rr,
    4087             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4088             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    4089             :         GIR_EraseFromParent, /*InsnID*/0,
    4090             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4091             :         // GIR_Coverage, 12439,
    4092             :         GIR_Done,
    4093             :       // Label 331: @7508
    4094             :       GIM_Try, /*On fail goto*//*Label 332*/ 7562, // Rule ID 18280 //
    4095             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4096             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4097             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4098             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4099             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4100             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4101             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4102             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    4103             :         // MIs[0] src
    4104             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    4105             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4106             :         // (or:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), GR32:{ *:[i32] }:$src)  =>  (BLCS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4107             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCS32rr,
    4108             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4109             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4110             :         GIR_EraseFromParent, /*InsnID*/0,
    4111             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4112             :         // GIR_Coverage, 18280,
    4113             :         GIR_Done,
    4114             :       // Label 332: @7562
    4115             :       GIM_Try, /*On fail goto*//*Label 333*/ 7616, // Rule ID 18282 //
    4116             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4117             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4118             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4119             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4120             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4121             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4122             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4123             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4124             :         // MIs[0] src
    4125             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    4126             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4127             :         // (or:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src)  =>  (BLSFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4128             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSFILL32rr,
    4129             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4130             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4131             :         GIR_EraseFromParent, /*InsnID*/0,
    4132             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4133             :         // GIR_Coverage, 18282,
    4134             :         GIR_Done,
    4135             :       // Label 333: @7616
    4136             :       GIM_Try, /*On fail goto*//*Label 334*/ 7670, // Rule ID 18274 //
    4137             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4138             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4139             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4140             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
    4141             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4142             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4143             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -2,
    4144             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::GR32RegClassID,
    4145             :         // MIs[0] src
    4146             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
    4147             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4148             :         // (or:{ *:[i32] } (sub:{ *:[i32] } -2:{ *:[i32] }, GR32:{ *:[i32] }:$src), GR32:{ *:[i32] }:$src)  =>  (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4149             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCI32rr,
    4150             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4151             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src
    4152             :         GIR_EraseFromParent, /*InsnID*/0,
    4153             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4154             :         // GIR_Coverage, 18274,
    4155             :         GIR_Done,
    4156             :       // Label 334: @7670
    4157             :       GIM_Try, /*On fail goto*//*Label 335*/ 7724, // Rule ID 12447 //
    4158             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4159             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4160             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4161             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4162             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4163             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4164             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4165             :         // MIs[1] src
    4166             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    4167             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    4168             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4169             :         // (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))  =>  (BLCS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4170             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCS32rr,
    4171             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4172             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    4173             :         GIR_EraseFromParent, /*InsnID*/0,
    4174             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4175             :         // GIR_Coverage, 12447,
    4176             :         GIR_Done,
    4177             :       // Label 335: @7724
    4178             :       GIM_Try, /*On fail goto*//*Label 336*/ 7778, // Rule ID 12449 //
    4179             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4180             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4181             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4182             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4183             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4184             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4185             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    4186             :         // MIs[1] src
    4187             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    4188             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4189             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4190             :         // (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (BLSFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4191             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSFILL32rr,
    4192             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4193             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    4194             :         GIR_EraseFromParent, /*InsnID*/0,
    4195             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4196             :         // GIR_Coverage, 12449,
    4197             :         GIR_Done,
    4198             :       // Label 336: @7778
    4199             :       GIM_Try, /*On fail goto*//*Label 337*/ 7832, // Rule ID 12441 //
    4200             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4201             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4202             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4203             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4204             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4205             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
    4206             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    4207             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -2,
    4208             :         // MIs[1] src
    4209             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
    4210             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4211             :         // (or:{ *:[i32] } GR32:{ *:[i32] }:$src, (sub:{ *:[i32] } -2:{ *:[i32] }, GR32:{ *:[i32] }:$src))  =>  (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    4212             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCI32rr,
    4213             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4214             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    4215             :         GIR_EraseFromParent, /*InsnID*/0,
    4216             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4217             :         // GIR_Coverage, 12441,
    4218             :         GIR_Done,
    4219             :       // Label 337: @7832
    4220             :       GIM_Try, /*On fail goto*//*Label 338*/ 7877, // Rule ID 16144 //
    4221             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4222             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4223             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4224             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4225             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    4226             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i32immSExt8,
    4227             :         // MIs[1] Operand 1
    4228             :         // No operand predicates
    4229             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4230             :         // (or:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)  =>  (OR32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)
    4231             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::OR32ri8,
    4232             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4233             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    4234             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    4235             :         GIR_EraseFromParent, /*InsnID*/0,
    4236             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4237             :         // GIR_Coverage, 16144,
    4238             :         GIR_Done,
    4239             :       // Label 338: @7877
    4240             :       GIM_Try, /*On fail goto*//*Label 339*/ 7919, // Rule ID 16142 //
    4241             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4242             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4243             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4244             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4245             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    4246             :         // MIs[1] Operand 1
    4247             :         // No operand predicates
    4248             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4249             :         // (or:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)  =>  (OR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
    4250             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::OR32ri,
    4251             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4252             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    4253             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    4254             :         GIR_EraseFromParent, /*InsnID*/0,
    4255             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4256             :         // GIR_Coverage, 16142,
    4257             :         GIR_Done,
    4258             :       // Label 339: @7919
    4259             :       GIM_Try, /*On fail goto*//*Label 340*/ 7947, // Rule ID 16134 //
    4260             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    4261             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    4262             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    4263             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    4264             :         // (or:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (OR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    4265             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::OR32rr,
    4266             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    4267             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4268             :         // GIR_Coverage, 16134,
    4269             :         GIR_Done,
    4270             :       // Label 340: @7947
    4271             :       GIM_Reject,
    4272             :     // Label 325: @7948
    4273             :     GIM_Reject,
    4274             :     // Label 305: @7949
    4275             :     GIM_Try, /*On fail goto*//*Label 341*/ 8848,
    4276             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    4277             :       GIM_Try, /*On fail goto*//*Label 342*/ 8030, // Rule ID 18285 //
    4278             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4279             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4280             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4281             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4282             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4283             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4284             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4285             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4286             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4287             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    4288             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_XOR,
    4289             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    4290             :         // MIs[2] src
    4291             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    4292             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    4293             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4294             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4295             :         // (or:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (BLSIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4296             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSIC64rr,
    4297             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4298             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4299             :         GIR_EraseFromParent, /*InsnID*/0,
    4300             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4301             :         // GIR_Coverage, 18285,
    4302             :         GIR_Done,
    4303             :       // Label 342: @8030
    4304             :       GIM_Try, /*On fail goto*//*Label 343*/ 8105, // Rule ID 18287 //
    4305             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4306             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4307             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4308             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4309             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4310             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4311             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4312             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4313             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    4314             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    4315             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_XOR,
    4316             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    4317             :         // MIs[2] src
    4318             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    4319             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    4320             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4321             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4322             :         // (or:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (T1MSKC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4323             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::T1MSKC64rr,
    4324             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4325             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4326             :         GIR_EraseFromParent, /*InsnID*/0,
    4327             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4328             :         // GIR_Coverage, 18287,
    4329             :         GIR_Done,
    4330             :       // Label 343: @8105
    4331             :       GIM_Try, /*On fail goto*//*Label 344*/ 8180, // Rule ID 18273 //
    4332             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4333             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4334             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4335             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4336             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4337             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4338             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
    4339             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    4340             :         GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
    4341             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    4342             :         GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4343             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 1,
    4344             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4345             :         // MIs[0] src
    4346             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
    4347             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4348             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4349             :         // (or:{ *:[i64] } (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), -1:{ *:[i64] }), GR64:{ *:[i64] }:$src)  =>  (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4350             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCI64rr,
    4351             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4352             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src
    4353             :         GIR_EraseFromParent, /*InsnID*/0,
    4354             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4355             :         // GIR_Coverage, 18273,
    4356             :         GIR_Done,
    4357             :       // Label 344: @8180
    4358             :       GIM_Try, /*On fail goto*//*Label 345*/ 8255, // Rule ID 12452 //
    4359             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4360             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4361             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4362             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4363             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4364             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4365             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4366             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4367             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4368             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    4369             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    4370             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    4371             :         // MIs[2] src
    4372             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    4373             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, -1,
    4374             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4375             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4376             :         // (or:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (BLSIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4377             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSIC64rr,
    4378             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4379             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4380             :         GIR_EraseFromParent, /*InsnID*/0,
    4381             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4382             :         // GIR_Coverage, 12452,
    4383             :         GIR_Done,
    4384             :       // Label 345: @8255
    4385             :       GIM_Try, /*On fail goto*//*Label 346*/ 8330, // Rule ID 12454 //
    4386             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4387             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4388             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4389             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4390             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4391             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4392             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4393             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4394             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4395             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
    4396             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    4397             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    4398             :         // MIs[2] src
    4399             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
    4400             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 1,
    4401             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4402             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4403             :         // (or:{ *:[i64] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))  =>  (T1MSKC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4404             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::T1MSKC64rr,
    4405             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4406             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4407             :         GIR_EraseFromParent, /*InsnID*/0,
    4408             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4409             :         // GIR_Coverage, 12454,
    4410             :         GIR_Done,
    4411             :       // Label 346: @8330
    4412             :       GIM_Try, /*On fail goto*//*Label 347*/ 8405, // Rule ID 12440 //
    4413             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4414             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4415             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4416             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4417             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4418             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4419             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4420             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4421             :         GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
    4422             :         GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ADD,
    4423             :         GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s64,
    4424             :         // MIs[2] src
    4425             :         GIM_CheckIsSameOperand, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    4426             :         GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 1,
    4427             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4428             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4429             :         GIM_CheckIsSafeToFold, /*InsnID*/2,
    4430             :         // (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), -1:{ *:[i64] }))  =>  (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4431             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCI64rr,
    4432             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4433             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    4434             :         GIR_EraseFromParent, /*InsnID*/0,
    4435             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4436             :         // GIR_Coverage, 12440,
    4437             :         GIR_Done,
    4438             :       // Label 347: @8405
    4439             :       GIM_Try, /*On fail goto*//*Label 348*/ 8459, // Rule ID 18281 //
    4440             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4441             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4442             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4443             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4444             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4445             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4446             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4447             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    4448             :         // MIs[0] src
    4449             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    4450             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4451             :         // (or:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), GR64:{ *:[i64] }:$src)  =>  (BLCS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4452             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCS64rr,
    4453             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4454             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4455             :         GIR_EraseFromParent, /*InsnID*/0,
    4456             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4457             :         // GIR_Coverage, 18281,
    4458             :         GIR_Done,
    4459             :       // Label 348: @8459
    4460             :       GIM_Try, /*On fail goto*//*Label 349*/ 8513, // Rule ID 18283 //
    4461             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4462             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4463             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4464             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4465             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4466             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4467             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4468             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4469             :         // MIs[0] src
    4470             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    4471             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4472             :         // (or:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src)  =>  (BLSFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4473             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSFILL64rr,
    4474             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4475             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    4476             :         GIR_EraseFromParent, /*InsnID*/0,
    4477             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4478             :         // GIR_Coverage, 18283,
    4479             :         GIR_Done,
    4480             :       // Label 349: @8513
    4481             :       GIM_Try, /*On fail goto*//*Label 350*/ 8567, // Rule ID 18275 //
    4482             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4483             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4484             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4485             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
    4486             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4487             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4488             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -2,
    4489             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::GR64RegClassID,
    4490             :         // MIs[0] src
    4491             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
    4492             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4493             :         // (or:{ *:[i64] } (sub:{ *:[i64] } -2:{ *:[i64] }, GR64:{ *:[i64] }:$src), GR64:{ *:[i64] }:$src)  =>  (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4494             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCI64rr,
    4495             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4496             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // src
    4497             :         GIR_EraseFromParent, /*InsnID*/0,
    4498             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4499             :         // GIR_Coverage, 18275,
    4500             :         GIR_Done,
    4501             :       // Label 350: @8567
    4502             :       GIM_Try, /*On fail goto*//*Label 351*/ 8621, // Rule ID 12448 //
    4503             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4504             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4505             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4506             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4507             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4508             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4509             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4510             :         // MIs[1] src
    4511             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    4512             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    4513             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4514             :         // (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))  =>  (BLCS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4515             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCS64rr,
    4516             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4517             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    4518             :         GIR_EraseFromParent, /*InsnID*/0,
    4519             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4520             :         // GIR_Coverage, 12448,
    4521             :         GIR_Done,
    4522             :       // Label 351: @8621
    4523             :       GIM_Try, /*On fail goto*//*Label 352*/ 8675, // Rule ID 12450 //
    4524             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4525             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4526             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4527             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4528             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4529             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    4530             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    4531             :         // MIs[1] src
    4532             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    4533             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4534             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4535             :         // (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (BLSFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4536             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSFILL64rr,
    4537             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4538             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    4539             :         GIR_EraseFromParent, /*InsnID*/0,
    4540             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4541             :         // GIR_Coverage, 12450,
    4542             :         GIR_Done,
    4543             :       // Label 352: @8675
    4544             :       GIM_Try, /*On fail goto*//*Label 353*/ 8729, // Rule ID 12442 //
    4545             :         GIM_CheckFeatures, GIFBS_HasTBM,
    4546             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4547             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4548             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4549             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4550             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
    4551             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    4552             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -2,
    4553             :         // MIs[1] src
    4554             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
    4555             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4556             :         // (or:{ *:[i64] } GR64:{ *:[i64] }:$src, (sub:{ *:[i64] } -2:{ *:[i64] }, GR64:{ *:[i64] }:$src))  =>  (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    4557             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCI64rr,
    4558             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4559             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    4560             :         GIR_EraseFromParent, /*InsnID*/0,
    4561             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4562             :         // GIR_Coverage, 12442,
    4563             :         GIR_Done,
    4564             :       // Label 353: @8729
    4565             :       GIM_Try, /*On fail goto*//*Label 354*/ 8774, // Rule ID 16145 //
    4566             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4567             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4568             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4569             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4570             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    4571             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt8,
    4572             :         // MIs[1] Operand 1
    4573             :         // No operand predicates
    4574             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4575             :         // (or:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)  =>  (OR64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)
    4576             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::OR64ri8,
    4577             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4578             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    4579             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    4580             :         GIR_EraseFromParent, /*InsnID*/0,
    4581             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4582             :         // GIR_Coverage, 16145,
    4583             :         GIR_Done,
    4584             :       // Label 354: @8774
    4585             :       GIM_Try, /*On fail goto*//*Label 355*/ 8819, // Rule ID 16146 //
    4586             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4587             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4588             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4589             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4590             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    4591             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt32,
    4592             :         // MIs[1] Operand 1
    4593             :         // No operand predicates
    4594             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4595             :         // (or:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)  =>  (OR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)
    4596             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::OR64ri32,
    4597             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4598             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    4599             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    4600             :         GIR_EraseFromParent, /*InsnID*/0,
    4601             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4602             :         // GIR_Coverage, 16146,
    4603             :         GIR_Done,
    4604             :       // Label 355: @8819
    4605             :       GIM_Try, /*On fail goto*//*Label 356*/ 8847, // Rule ID 16135 //
    4606             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    4607             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    4608             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    4609             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    4610             :         // (or:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (OR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    4611             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::OR64rr,
    4612             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    4613             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4614             :         // GIR_Coverage, 16135,
    4615             :         GIR_Done,
    4616             :       // Label 356: @8847
    4617             :       GIM_Reject,
    4618             :     // Label 341: @8848
    4619             :     GIM_Reject,
    4620             :     // Label 306: @8849
    4621             :     GIM_Try, /*On fail goto*//*Label 357*/ 8941, // Rule ID 13441 //
    4622             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s128,
    4623             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s128,
    4624             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR128RegClassID,
    4625             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR128RegClassID,
    4626             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::FR128RegClassID,
    4627             :       // (or:{ *:[i128] } FR128:{ *:[i128] }:$src1, FR128:{ *:[i128] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[i128] } (ORPSrr:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } FR128:{ *:[i128] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i8] } FR128:{ *:[i128] }:$src2, VR128:{ *:[i32] })), FR128:{ *:[i32] })
    4628             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    4629             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    4630             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
    4631             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    4632             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    4633             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    4634             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    4635             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4636             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4637             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    4638             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4639             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::ORPSrr,
    4640             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4641             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4642             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    4643             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4644             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4645             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4646             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4647             :       GIR_EraseFromParent, /*InsnID*/0,
    4648             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC FR128*/74,
    4649             :       // GIR_Coverage, 13441,
    4650             :       GIR_Done,
    4651             :     // Label 357: @8941
    4652             :     GIM_Reject,
    4653             :     // Label 307: @8942
    4654             :     GIM_Try, /*On fail goto*//*Label 358*/ 9034, // Rule ID 13968 //
    4655             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s1,
    4656             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s1,
    4657             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    4658             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK2RegClassID,
    4659             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK2RegClassID,
    4660             :       // (or:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, VK2:{ *:[v2i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v2i1] } (KORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    4661             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    4662             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    4663             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    4664             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    4665             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    4666             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    4667             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    4668             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4669             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4670             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    4671             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4672             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KORWrr,
    4673             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4674             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4675             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    4676             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4677             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4678             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4679             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4680             :       GIR_EraseFromParent, /*InsnID*/0,
    4681             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    4682             :       // GIR_Coverage, 13968,
    4683             :       GIR_Done,
    4684             :     // Label 358: @9034
    4685             :     GIM_Reject,
    4686             :     // Label 308: @9035
    4687             :     GIM_Try, /*On fail goto*//*Label 359*/ 9115,
    4688             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    4689             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    4690             :       GIM_Try, /*On fail goto*//*Label 360*/ 9068, // Rule ID 1555 //
    4691             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX,
    4692             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    4693             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    4694             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    4695             :         // (or:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VPORrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    4696             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPORrr,
    4697             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4698             :         // GIR_Coverage, 1555,
    4699             :         GIR_Done,
    4700             :       // Label 360: @9068
    4701             :       GIM_Try, /*On fail goto*//*Label 361*/ 9091, // Rule ID 1557 //
    4702             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    4703             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    4704             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    4705             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    4706             :         // (or:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (PORrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    4707             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PORrr,
    4708             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4709             :         // GIR_Coverage, 1557,
    4710             :         GIR_Done,
    4711             :       // Label 361: @9091
    4712             :       GIM_Try, /*On fail goto*//*Label 362*/ 9114, // Rule ID 4942 //
    4713             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    4714             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    4715             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    4716             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    4717             :         // (or:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VPORQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    4718             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPORQZ128rr,
    4719             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4720             :         // GIR_Coverage, 4942,
    4721             :         GIR_Done,
    4722             :       // Label 362: @9114
    4723             :       GIM_Reject,
    4724             :     // Label 359: @9115
    4725             :     GIM_Reject,
    4726             :     // Label 309: @9116
    4727             :     GIM_Try, /*On fail goto*//*Label 363*/ 9208, // Rule ID 13969 //
    4728             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s1,
    4729             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s1,
    4730             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    4731             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK4RegClassID,
    4732             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK4RegClassID,
    4733             :       // (or:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, VK4:{ *:[v4i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v4i1] } (KORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    4734             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    4735             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    4736             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    4737             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    4738             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    4739             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    4740             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    4741             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4742             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4743             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    4744             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4745             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KORWrr,
    4746             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4747             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4748             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    4749             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4750             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4751             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4752             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4753             :       GIR_EraseFromParent, /*InsnID*/0,
    4754             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    4755             :       // GIR_Coverage, 13969,
    4756             :       GIR_Done,
    4757             :     // Label 363: @9208
    4758             :     GIM_Reject,
    4759             :     // Label 310: @9209
    4760             :     GIM_Try, /*On fail goto*//*Label 364*/ 9289,
    4761             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    4762             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    4763             :       GIM_Try, /*On fail goto*//*Label 365*/ 9242, // Rule ID 1559 //
    4764             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX,
    4765             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    4766             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    4767             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    4768             :         // (or:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VPORYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    4769             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPORYrr,
    4770             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4771             :         // GIR_Coverage, 1559,
    4772             :         GIR_Done,
    4773             :       // Label 365: @9242
    4774             :       GIM_Try, /*On fail goto*//*Label 366*/ 9265, // Rule ID 4933 //
    4775             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    4776             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    4777             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    4778             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    4779             :         // (or:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VPORQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    4780             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPORQZ256rr,
    4781             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4782             :         // GIR_Coverage, 4933,
    4783             :         GIR_Done,
    4784             :       // Label 366: @9265
    4785             :       GIM_Try, /*On fail goto*//*Label 367*/ 9288, // Rule ID 12727 //
    4786             :         GIM_CheckFeatures, GIFBS_HasAVX1Only,
    4787             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    4788             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    4789             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    4790             :         // (or:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VORPSYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    4791             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VORPSYrr,
    4792             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4793             :         // GIR_Coverage, 12727,
    4794             :         GIR_Done,
    4795             :       // Label 367: @9288
    4796             :       GIM_Reject,
    4797             :     // Label 364: @9289
    4798             :     GIM_Reject,
    4799             :     // Label 311: @9290
    4800             :     GIM_Try, /*On fail goto*//*Label 368*/ 9398,
    4801             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s1,
    4802             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s1,
    4803             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK8RegClassID,
    4804             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK8RegClassID,
    4805             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK8RegClassID,
    4806             :       GIM_Try, /*On fail goto*//*Label 369*/ 9323, // Rule ID 3613 //
    4807             :         GIM_CheckFeatures, GIFBS_HasDQI,
    4808             :         // (or:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)  =>  (KORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
    4809             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KORBrr,
    4810             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4811             :         // GIR_Coverage, 3613,
    4812             :         GIR_Done,
    4813             :       // Label 369: @9323
    4814             :       GIM_Try, /*On fail goto*//*Label 370*/ 9397, // Rule ID 13966 //
    4815             :         GIM_CheckFeatures, GIFBS_NoDQI,
    4816             :         // (or:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v8i1] } (KORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
    4817             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    4818             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    4819             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    4820             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    4821             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    4822             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    4823             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    4824             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4825             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4826             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    4827             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4828             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KORWrr,
    4829             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4830             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4831             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    4832             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4833             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4834             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4835             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4836             :         GIR_EraseFromParent, /*InsnID*/0,
    4837             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK8*/12,
    4838             :         // GIR_Coverage, 13966,
    4839             :         GIR_Done,
    4840             :       // Label 370: @9397
    4841             :       GIM_Reject,
    4842             :     // Label 368: @9398
    4843             :     GIM_Reject,
    4844             :     // Label 312: @9399
    4845             :     GIM_Try, /*On fail goto*//*Label 371*/ 9430, // Rule ID 4924 //
    4846             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    4847             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    4848             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    4849             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    4850             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    4851             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    4852             :       // (or:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VPORQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    4853             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPORQZrr,
    4854             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4855             :       // GIR_Coverage, 4924,
    4856             :       GIR_Done,
    4857             :     // Label 371: @9430
    4858             :     GIM_Reject,
    4859             :     // Label 313: @9431
    4860             :     GIM_Try, /*On fail goto*//*Label 372*/ 9462, // Rule ID 3614 //
    4861             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    4862             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s1,
    4863             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s1,
    4864             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK16RegClassID,
    4865             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK16RegClassID,
    4866             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK16RegClassID,
    4867             :       // (or:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)  =>  (KORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
    4868             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KORWrr,
    4869             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4870             :       // GIR_Coverage, 3614,
    4871             :       GIR_Done,
    4872             :     // Label 372: @9462
    4873             :     GIM_Reject,
    4874             :     // Label 314: @9463
    4875             :     GIM_Try, /*On fail goto*//*Label 373*/ 9494, // Rule ID 3615 //
    4876             :       GIM_CheckFeatures, GIFBS_HasBWI,
    4877             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s1,
    4878             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s1,
    4879             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK32RegClassID,
    4880             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK32RegClassID,
    4881             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK32RegClassID,
    4882             :       // (or:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)  =>  (KORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
    4883             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KORDrr,
    4884             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4885             :       // GIR_Coverage, 3615,
    4886             :       GIR_Done,
    4887             :     // Label 373: @9494
    4888             :     GIM_Reject,
    4889             :     // Label 315: @9495
    4890             :     GIM_Try, /*On fail goto*//*Label 374*/ 9526, // Rule ID 3616 //
    4891             :       GIM_CheckFeatures, GIFBS_HasBWI,
    4892             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s1,
    4893             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v64s1,
    4894             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK64RegClassID,
    4895             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK64RegClassID,
    4896             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK64RegClassID,
    4897             :       // (or:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)  =>  (KORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
    4898             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KORQrr,
    4899             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    4900             :       // GIR_Coverage, 3616,
    4901             :       GIR_Done,
    4902             :     // Label 374: @9526
    4903             :     GIM_Reject,
    4904             :     // Label 316: @9527
    4905             :     GIM_Reject,
    4906             :     // Label 5: @9528
    4907             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 24, /*)*//*default:*//*Label 390*/ 11593,
    4908             :     /*GILLT_s1*//*Label 375*/ 9558,
    4909             :     /*GILLT_s8*//*Label 376*/ 9957,
    4910             :     /*GILLT_s16*//*Label 377*/ 10045,
    4911             :     /*GILLT_s32*//*Label 378*/ 10166,
    4912             :     /*GILLT_s64*//*Label 379*/ 10539, 0,
    4913             :     /*GILLT_s128*//*Label 380*/ 10915,
    4914             :     /*GILLT_v2s1*//*Label 381*/ 11008,
    4915             :     /*GILLT_v2s64*//*Label 382*/ 11101,
    4916             :     /*GILLT_v4s1*//*Label 383*/ 11182, 0,
    4917             :     /*GILLT_v4s64*//*Label 384*/ 11275,
    4918             :     /*GILLT_v8s1*//*Label 385*/ 11356, 0, 0,
    4919             :     /*GILLT_v8s64*//*Label 386*/ 11465,
    4920             :     /*GILLT_v16s1*//*Label 387*/ 11497, 0, 0, 0,
    4921             :     /*GILLT_v32s1*//*Label 388*/ 11529, 0, 0,
    4922             :     /*GILLT_v64s1*//*Label 389*/ 11561,
    4923             :     // Label 375: @9558
    4924             :     GIM_Try, /*On fail goto*//*Label 391*/ 9956,
    4925             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s1,
    4926             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s1,
    4927             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    4928             :       GIM_Try, /*On fail goto*//*Label 392*/ 9673, // Rule ID 18422 //
    4929             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4930             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4931             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s1,
    4932             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s1,
    4933             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VK1RegClassID,
    4934             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    4935             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK1RegClassID,
    4936             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4937             :         // (xor:{ *:[v1i1] } (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, -1:{ *:[v1i1] }), VK1:{ *:[v1i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v1i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    4938             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    4939             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    4940             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    4941             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    4942             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    4943             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    4944             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    4945             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4946             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4947             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/1, /*OpIdx*/1, // src1
    4948             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4949             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KXNORWrr,
    4950             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4951             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4952             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    4953             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4954             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4955             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4956             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4957             :         GIR_EraseFromParent, /*InsnID*/0,
    4958             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    4959             :         // GIR_Coverage, 18422,
    4960             :         GIR_Done,
    4961             :       // Label 392: @9673
    4962             :       GIM_Try, /*On fail goto*//*Label 393*/ 9774, // Rule ID 13971 //
    4963             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    4964             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    4965             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s1,
    4966             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s1,
    4967             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VK1RegClassID,
    4968             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/X86::VK1RegClassID,
    4969             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    4970             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    4971             :         // (xor:{ *:[v1i1] } (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, VK1:{ *:[v1i1] }:$src2), -1:{ *:[v1i1] })  =>  (COPY_TO_REGCLASS:{ *:[v1i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    4972             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    4973             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    4974             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    4975             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    4976             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    4977             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/1, /*OpIdx*/2, // src2
    4978             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    4979             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    4980             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    4981             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/1, /*OpIdx*/1, // src1
    4982             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    4983             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KXNORWrr,
    4984             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    4985             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    4986             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    4987             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    4988             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    4989             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    4990             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    4991             :         GIR_EraseFromParent, /*InsnID*/0,
    4992             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    4993             :         // GIR_Coverage, 13971,
    4994             :         GIR_Done,
    4995             :       // Label 393: @9774
    4996             :       GIM_Try, /*On fail goto*//*Label 394*/ 9875, // Rule ID 18423 //
    4997             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK1RegClassID,
    4998             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    4999             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
    5000             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s1,
    5001             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s1,
    5002             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::VK1RegClassID,
    5003             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    5004             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5005             :         // (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src2, (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, -1:{ *:[v1i1] }))  =>  (COPY_TO_REGCLASS:{ *:[v1i1] } (KXNORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    5006             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    5007             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    5008             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    5009             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    5010             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    5011             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // src2
    5012             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    5013             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    5014             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    5015             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/1, /*OpIdx*/1, // src1
    5016             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    5017             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KXNORWrr,
    5018             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    5019             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    5020             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    5021             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    5022             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5023             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5024             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    5025             :         GIR_EraseFromParent, /*InsnID*/0,
    5026             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    5027             :         // GIR_Coverage, 18423,
    5028             :         GIR_Done,
    5029             :       // Label 394: @9875
    5030             :       GIM_Try, /*On fail goto*//*Label 395*/ 9955, // Rule ID 13975 //
    5031             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK1RegClassID,
    5032             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK1RegClassID,
    5033             :         // (xor:{ *:[v1i1] } VK1:{ *:[v1i1] }:$src1, VK1:{ *:[v1i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v1i1] } (KXORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    5034             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    5035             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    5036             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    5037             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    5038             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    5039             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    5040             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    5041             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    5042             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    5043             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5044             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    5045             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KXORWrr,
    5046             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    5047             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    5048             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    5049             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    5050             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5051             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5052             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    5053             :         GIR_EraseFromParent, /*InsnID*/0,
    5054             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    5055             :         // GIR_Coverage, 13975,
    5056             :         GIR_Done,
    5057             :       // Label 395: @9955
    5058             :       GIM_Reject,
    5059             :     // Label 391: @9956
    5060             :     GIM_Reject,
    5061             :     // Label 376: @9957
    5062             :     GIM_Try, /*On fail goto*//*Label 396*/ 10044,
    5063             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s8,
    5064             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s8,
    5065             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR8RegClassID,
    5066             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR8RegClassID,
    5067             :       GIM_Try, /*On fail goto*//*Label 397*/ 9997, // Rule ID 152 //
    5068             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    5069             :         // (xor:{ *:[i8] } GR8:{ *:[i8] }:$src1, -1:{ *:[i8] })  =>  (NOT8r:{ *:[i8] } GR8:{ *:[i8] }:$src1)
    5070             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::NOT8r,
    5071             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5072             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5073             :         GIR_EraseFromParent, /*InsnID*/0,
    5074             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5075             :         // GIR_Coverage, 152,
    5076             :         GIR_Done,
    5077             :       // Label 397: @9997
    5078             :       GIM_Try, /*On fail goto*//*Label 398*/ 10027, // Rule ID 16155 //
    5079             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5080             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5081             :         // MIs[1] Operand 1
    5082             :         // No operand predicates
    5083             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5084             :         // (xor:{ *:[i8] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)  =>  (XOR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)
    5085             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::XOR8ri,
    5086             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5087             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5088             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    5089             :         GIR_EraseFromParent, /*InsnID*/0,
    5090             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5091             :         // GIR_Coverage, 16155,
    5092             :         GIR_Done,
    5093             :       // Label 398: @10027
    5094             :       GIM_Try, /*On fail goto*//*Label 399*/ 10043, // Rule ID 16147 //
    5095             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR8RegClassID,
    5096             :         // (xor:{ *:[i8] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)  =>  (XOR8rr:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)
    5097             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::XOR8rr,
    5098             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    5099             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5100             :         // GIR_Coverage, 16147,
    5101             :         GIR_Done,
    5102             :       // Label 399: @10043
    5103             :       GIM_Reject,
    5104             :     // Label 396: @10044
    5105             :     GIM_Reject,
    5106             :     // Label 377: @10045
    5107             :     GIM_Try, /*On fail goto*//*Label 400*/ 10165,
    5108             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
    5109             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
    5110             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR16RegClassID,
    5111             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR16RegClassID,
    5112             :       GIM_Try, /*On fail goto*//*Label 401*/ 10085, // Rule ID 153 //
    5113             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    5114             :         // (xor:{ *:[i16] } GR16:{ *:[i16] }:$src1, -1:{ *:[i16] })  =>  (NOT16r:{ *:[i16] } GR16:{ *:[i16] }:$src1)
    5115             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::NOT16r,
    5116             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5117             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5118             :         GIR_EraseFromParent, /*InsnID*/0,
    5119             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5120             :         // GIR_Coverage, 153,
    5121             :         GIR_Done,
    5122             :       // Label 401: @10085
    5123             :       GIM_Try, /*On fail goto*//*Label 402*/ 10118, // Rule ID 16158 //
    5124             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5125             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5126             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i16immSExt8,
    5127             :         // MIs[1] Operand 1
    5128             :         // No operand predicates
    5129             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5130             :         // (xor:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)  =>  (XOR16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_i16immSExt8>>:$src2)
    5131             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::XOR16ri8,
    5132             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5133             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5134             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    5135             :         GIR_EraseFromParent, /*InsnID*/0,
    5136             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5137             :         // GIR_Coverage, 16158,
    5138             :         GIR_Done,
    5139             :       // Label 402: @10118
    5140             :       GIM_Try, /*On fail goto*//*Label 403*/ 10148, // Rule ID 16156 //
    5141             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5142             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5143             :         // MIs[1] Operand 1
    5144             :         // No operand predicates
    5145             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5146             :         // (xor:{ *:[i16] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)  =>  (XOR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
    5147             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::XOR16ri,
    5148             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5149             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5150             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    5151             :         GIR_EraseFromParent, /*InsnID*/0,
    5152             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5153             :         // GIR_Coverage, 16156,
    5154             :         GIR_Done,
    5155             :       // Label 403: @10148
    5156             :       GIM_Try, /*On fail goto*//*Label 404*/ 10164, // Rule ID 16148 //
    5157             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR16RegClassID,
    5158             :         // (xor:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)  =>  (XOR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
    5159             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::XOR16rr,
    5160             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    5161             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5162             :         // GIR_Coverage, 16148,
    5163             :         GIR_Done,
    5164             :       // Label 404: @10164
    5165             :       GIM_Reject,
    5166             :     // Label 400: @10165
    5167             :     GIM_Reject,
    5168             :     // Label 378: @10166
    5169             :     GIM_Try, /*On fail goto*//*Label 405*/ 10538,
    5170             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    5171             :       GIM_Try, /*On fail goto*//*Label 406*/ 10226, // Rule ID 18278 //
    5172             :         GIM_CheckFeatures, GIFBS_HasTBM,
    5173             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5174             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    5175             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    5176             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    5177             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    5178             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5179             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    5180             :         // MIs[0] src
    5181             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    5182             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5183             :         // (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), GR32:{ *:[i32] }:$src)  =>  (BLCMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    5184             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCMSK32rr,
    5185             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5186             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    5187             :         GIR_EraseFromParent, /*InsnID*/0,
    5188             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5189             :         // GIR_Coverage, 18278,
    5190             :         GIR_Done,
    5191             :       // Label 406: @10226
    5192             :       GIM_Try, /*On fail goto*//*Label 407*/ 10280, // Rule ID 18778 //
    5193             :         GIM_CheckFeatures, GIFBS_HasBMI,
    5194             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5195             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    5196             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    5197             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
    5198             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    5199             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5200             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    5201             :         // MIs[0] src
    5202             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    5203             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5204             :         // (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src)  =>  (BLSMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    5205             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSMSK32rr,
    5206             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5207             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    5208             :         GIR_EraseFromParent, /*InsnID*/0,
    5209             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5210             :         // GIR_Coverage, 18778,
    5211             :         GIR_Done,
    5212             :       // Label 407: @10280
    5213             :       GIM_Try, /*On fail goto*//*Label 408*/ 10334, // Rule ID 12445 //
    5214             :         GIM_CheckFeatures, GIFBS_HasTBM,
    5215             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5216             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5217             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5218             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5219             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    5220             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    5221             :         // MIs[1] src
    5222             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    5223             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    5224             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5225             :         // (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))  =>  (BLCMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    5226             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCMSK32rr,
    5227             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5228             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    5229             :         GIR_EraseFromParent, /*InsnID*/0,
    5230             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5231             :         // GIR_Coverage, 12445,
    5232             :         GIR_Done,
    5233             :       // Label 408: @10334
    5234             :       GIM_Try, /*On fail goto*//*Label 409*/ 10388, // Rule ID 16481 //
    5235             :         GIM_CheckFeatures, GIFBS_HasBMI,
    5236             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5237             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5238             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5239             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5240             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    5241             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
    5242             :         // MIs[1] src
    5243             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    5244             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    5245             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5246             :         // (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))  =>  (BLSMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
    5247             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSMSK32rr,
    5248             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5249             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    5250             :         GIR_EraseFromParent, /*InsnID*/0,
    5251             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5252             :         // GIR_Coverage, 16481,
    5253             :         GIR_Done,
    5254             :       // Label 409: @10388
    5255             :       GIM_Try, /*On fail goto*//*Label 410*/ 10422, // Rule ID 154 //
    5256             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5257             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5258             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5259             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    5260             :         // (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, -1:{ *:[i32] })  =>  (NOT32r:{ *:[i32] } GR32:{ *:[i32] }:$src1)
    5261             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::NOT32r,
    5262             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5263             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5264             :         GIR_EraseFromParent, /*InsnID*/0,
    5265             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5266             :         // GIR_Coverage, 154,
    5267             :         GIR_Done,
    5268             :       // Label 410: @10422
    5269             :       GIM_Try, /*On fail goto*//*Label 411*/ 10467, // Rule ID 16159 //
    5270             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5271             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5272             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5273             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5274             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5275             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i32immSExt8,
    5276             :         // MIs[1] Operand 1
    5277             :         // No operand predicates
    5278             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5279             :         // (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)  =>  (XOR32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] })<<P:Predicate_i32immSExt8>>:$src2)
    5280             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::XOR32ri8,
    5281             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5282             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5283             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    5284             :         GIR_EraseFromParent, /*InsnID*/0,
    5285             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5286             :         // GIR_Coverage, 16159,
    5287             :         GIR_Done,
    5288             :       // Label 411: @10467
    5289             :       GIM_Try, /*On fail goto*//*Label 412*/ 10509, // Rule ID 16157 //
    5290             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5291             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5292             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5293             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5294             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5295             :         // MIs[1] Operand 1
    5296             :         // No operand predicates
    5297             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5298             :         // (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)  =>  (XOR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
    5299             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::XOR32ri,
    5300             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5301             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5302             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    5303             :         GIR_EraseFromParent, /*InsnID*/0,
    5304             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5305             :         // GIR_Coverage, 16157,
    5306             :         GIR_Done,
    5307             :       // Label 412: @10509
    5308             :       GIM_Try, /*On fail goto*//*Label 413*/ 10537, // Rule ID 16149 //
    5309             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    5310             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5311             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5312             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    5313             :         // (xor:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (XOR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    5314             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::XOR32rr,
    5315             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    5316             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5317             :         // GIR_Coverage, 16149,
    5318             :         GIR_Done,
    5319             :       // Label 413: @10537
    5320             :       GIM_Reject,
    5321             :     // Label 405: @10538
    5322             :     GIM_Reject,
    5323             :     // Label 379: @10539
    5324             :     GIM_Try, /*On fail goto*//*Label 414*/ 10914,
    5325             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    5326             :       GIM_Try, /*On fail goto*//*Label 415*/ 10599, // Rule ID 18279 //
    5327             :         GIM_CheckFeatures, GIFBS_HasTBM,
    5328             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5329             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    5330             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    5331             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    5332             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    5333             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5334             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    5335             :         // MIs[0] src
    5336             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    5337             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5338             :         // (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), GR64:{ *:[i64] }:$src)  =>  (BLCMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    5339             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCMSK64rr,
    5340             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5341             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    5342             :         GIR_EraseFromParent, /*InsnID*/0,
    5343             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5344             :         // GIR_Coverage, 18279,
    5345             :         GIR_Done,
    5346             :       // Label 415: @10599
    5347             :       GIM_Try, /*On fail goto*//*Label 416*/ 10653, // Rule ID 18779 //
    5348             :         GIM_CheckFeatures, GIFBS_HasBMI,
    5349             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5350             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
    5351             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    5352             :         GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
    5353             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    5354             :         GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5355             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    5356             :         // MIs[0] src
    5357             :         GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
    5358             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5359             :         // (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src)  =>  (BLSMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    5360             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSMSK64rr,
    5361             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5362             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
    5363             :         GIR_EraseFromParent, /*InsnID*/0,
    5364             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5365             :         // GIR_Coverage, 18779,
    5366             :         GIR_Done,
    5367             :       // Label 416: @10653
    5368             :       GIM_Try, /*On fail goto*//*Label 417*/ 10707, // Rule ID 12446 //
    5369             :         GIM_CheckFeatures, GIFBS_HasTBM,
    5370             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    5371             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5372             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5373             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5374             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    5375             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    5376             :         // MIs[1] src
    5377             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    5378             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 1,
    5379             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5380             :         // (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))  =>  (BLCMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    5381             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLCMSK64rr,
    5382             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5383             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    5384             :         GIR_EraseFromParent, /*InsnID*/0,
    5385             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5386             :         // GIR_Coverage, 12446,
    5387             :         GIR_Done,
    5388             :       // Label 417: @10707
    5389             :       GIM_Try, /*On fail goto*//*Label 418*/ 10761, // Rule ID 16482 //
    5390             :         GIM_CheckFeatures, GIFBS_HasBMI,
    5391             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    5392             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5393             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5394             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5395             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
    5396             :         GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
    5397             :         // MIs[1] src
    5398             :         GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
    5399             :         GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
    5400             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5401             :         // (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))  =>  (BLSMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
    5402             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::BLSMSK64rr,
    5403             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5404             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    5405             :         GIR_EraseFromParent, /*InsnID*/0,
    5406             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5407             :         // GIR_Coverage, 16482,
    5408             :         GIR_Done,
    5409             :       // Label 418: @10761
    5410             :       GIM_Try, /*On fail goto*//*Label 419*/ 10795, // Rule ID 155 //
    5411             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    5412             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5413             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5414             :         GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
    5415             :         // (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, -1:{ *:[i64] })  =>  (NOT64r:{ *:[i64] } GR64:{ *:[i64] }:$src1)
    5416             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::NOT64r,
    5417             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5418             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5419             :         GIR_EraseFromParent, /*InsnID*/0,
    5420             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5421             :         // GIR_Coverage, 155,
    5422             :         GIR_Done,
    5423             :       // Label 419: @10795
    5424             :       GIM_Try, /*On fail goto*//*Label 420*/ 10840, // Rule ID 16160 //
    5425             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    5426             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5427             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5428             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5429             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5430             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt8,
    5431             :         // MIs[1] Operand 1
    5432             :         // No operand predicates
    5433             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5434             :         // (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)  =>  (XOR64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt8>>:$src2)
    5435             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::XOR64ri8,
    5436             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5437             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5438             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    5439             :         GIR_EraseFromParent, /*InsnID*/0,
    5440             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5441             :         // GIR_Coverage, 16160,
    5442             :         GIR_Done,
    5443             :       // Label 420: @10840
    5444             :       GIM_Try, /*On fail goto*//*Label 421*/ 10885, // Rule ID 16161 //
    5445             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    5446             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5447             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5448             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
    5449             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    5450             :         GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_i64immSExt32,
    5451             :         // MIs[1] Operand 1
    5452             :         // No operand predicates
    5453             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    5454             :         // (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)  =>  (XOR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src2)
    5455             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::XOR64ri32,
    5456             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5457             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5458             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    5459             :         GIR_EraseFromParent, /*InsnID*/0,
    5460             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5461             :         // GIR_Coverage, 16161,
    5462             :         GIR_Done,
    5463             :       // Label 421: @10885
    5464             :       GIM_Try, /*On fail goto*//*Label 422*/ 10913, // Rule ID 16150 //
    5465             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    5466             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5467             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5468             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    5469             :         // (xor:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (XOR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    5470             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::XOR64rr,
    5471             :         GIR_AddImplicitDef, /*InsnID*/0, X86::EFLAGS,
    5472             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5473             :         // GIR_Coverage, 16150,
    5474             :         GIR_Done,
    5475             :       // Label 422: @10913
    5476             :       GIM_Reject,
    5477             :     // Label 414: @10914
    5478             :     GIM_Reject,
    5479             :     // Label 380: @10915
    5480             :     GIM_Try, /*On fail goto*//*Label 423*/ 11007, // Rule ID 13444 //
    5481             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s128,
    5482             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s128,
    5483             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR128RegClassID,
    5484             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR128RegClassID,
    5485             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::FR128RegClassID,
    5486             :       // (xor:{ *:[i128] } FR128:{ *:[i128] }:$src1, FR128:{ *:[i128] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[i128] } (XORPSrr:{ *:[v16i8] } (COPY_TO_REGCLASS:{ *:[v16i8] } FR128:{ *:[i128] }:$src1, VR128:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i8] } FR128:{ *:[i128] }:$src2, VR128:{ *:[i32] })), FR128:{ *:[i32] })
    5487             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
    5488             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
    5489             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
    5490             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    5491             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    5492             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    5493             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    5494             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    5495             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    5496             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5497             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    5498             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::XORPSrr,
    5499             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    5500             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    5501             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    5502             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    5503             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5504             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5505             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    5506             :       GIR_EraseFromParent, /*InsnID*/0,
    5507             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC FR128*/74,
    5508             :       // GIR_Coverage, 13444,
    5509             :       GIR_Done,
    5510             :     // Label 423: @11007
    5511             :     GIM_Reject,
    5512             :     // Label 381: @11008
    5513             :     GIM_Try, /*On fail goto*//*Label 424*/ 11100, // Rule ID 13976 //
    5514             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s1,
    5515             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s1,
    5516             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    5517             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK2RegClassID,
    5518             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK2RegClassID,
    5519             :       // (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, VK2:{ *:[v2i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v2i1] } (KXORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    5520             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    5521             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    5522             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    5523             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    5524             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    5525             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    5526             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    5527             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    5528             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    5529             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5530             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    5531             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KXORWrr,
    5532             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    5533             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    5534             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    5535             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    5536             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5537             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5538             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    5539             :       GIR_EraseFromParent, /*InsnID*/0,
    5540             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    5541             :       // GIR_Coverage, 13976,
    5542             :       GIR_Done,
    5543             :     // Label 424: @11100
    5544             :     GIM_Reject,
    5545             :     // Label 382: @11101
    5546             :     GIM_Try, /*On fail goto*//*Label 425*/ 11181,
    5547             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    5548             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    5549             :       GIM_Try, /*On fail goto*//*Label 426*/ 11134, // Rule ID 1561 //
    5550             :         GIM_CheckFeatures, GIFBS_HasAVX_NoVLX,
    5551             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    5552             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    5553             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    5554             :         // (xor:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VPXORrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    5555             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPXORrr,
    5556             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5557             :         // GIR_Coverage, 1561,
    5558             :         GIR_Done,
    5559             :       // Label 426: @11134
    5560             :       GIM_Try, /*On fail goto*//*Label 427*/ 11157, // Rule ID 1563 //
    5561             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    5562             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    5563             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    5564             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    5565             :         // (xor:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (PXORrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    5566             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::PXORrr,
    5567             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5568             :         // GIR_Coverage, 1563,
    5569             :         GIR_Done,
    5570             :       // Label 427: @11157
    5571             :       GIM_Try, /*On fail goto*//*Label 428*/ 11180, // Rule ID 4990 //
    5572             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    5573             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    5574             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128XRegClassID,
    5575             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    5576             :         // (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VPXORQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    5577             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPXORQZ128rr,
    5578             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5579             :         // GIR_Coverage, 4990,
    5580             :         GIR_Done,
    5581             :       // Label 428: @11180
    5582             :       GIM_Reject,
    5583             :     // Label 425: @11181
    5584             :     GIM_Reject,
    5585             :     // Label 383: @11182
    5586             :     GIM_Try, /*On fail goto*//*Label 429*/ 11274, // Rule ID 13977 //
    5587             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s1,
    5588             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s1,
    5589             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK1RegClassID,
    5590             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK4RegClassID,
    5591             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK4RegClassID,
    5592             :       // (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, VK4:{ *:[v4i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v4i1] } (KXORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src2, VK16:{ *:[i32] })), VK1:{ *:[i32] })
    5593             :       GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    5594             :       GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    5595             :       GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    5596             :       GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    5597             :       GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    5598             :       GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    5599             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    5600             :       GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    5601             :       GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    5602             :       GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5603             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    5604             :       GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KXORWrr,
    5605             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    5606             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    5607             :       GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    5608             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    5609             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5610             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5611             :       GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    5612             :       GIR_EraseFromParent, /*InsnID*/0,
    5613             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK1*/8,
    5614             :       // GIR_Coverage, 13977,
    5615             :       GIR_Done,
    5616             :     // Label 429: @11274
    5617             :     GIM_Reject,
    5618             :     // Label 384: @11275
    5619             :     GIM_Try, /*On fail goto*//*Label 430*/ 11355,
    5620             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    5621             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    5622             :       GIM_Try, /*On fail goto*//*Label 431*/ 11308, // Rule ID 1565 //
    5623             :         GIM_CheckFeatures, GIFBS_HasAVX2_NoVLX,
    5624             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    5625             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    5626             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    5627             :         // (xor:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VPXORYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    5628             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPXORYrr,
    5629             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5630             :         // GIR_Coverage, 1565,
    5631             :         GIR_Done,
    5632             :       // Label 431: @11308
    5633             :       GIM_Try, /*On fail goto*//*Label 432*/ 11331, // Rule ID 4981 //
    5634             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVLX,
    5635             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    5636             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256XRegClassID,
    5637             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    5638             :         // (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VPXORQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    5639             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPXORQZ256rr,
    5640             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5641             :         // GIR_Coverage, 4981,
    5642             :         GIR_Done,
    5643             :       // Label 432: @11331
    5644             :       GIM_Try, /*On fail goto*//*Label 433*/ 11354, // Rule ID 12728 //
    5645             :         GIM_CheckFeatures, GIFBS_HasAVX1Only,
    5646             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    5647             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    5648             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    5649             :         // (xor:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VXORPSYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    5650             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VXORPSYrr,
    5651             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5652             :         // GIR_Coverage, 12728,
    5653             :         GIR_Done,
    5654             :       // Label 433: @11354
    5655             :       GIM_Reject,
    5656             :     // Label 430: @11355
    5657             :     GIM_Reject,
    5658             :     // Label 385: @11356
    5659             :     GIM_Try, /*On fail goto*//*Label 434*/ 11464,
    5660             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s1,
    5661             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s1,
    5662             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK8RegClassID,
    5663             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK8RegClassID,
    5664             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK8RegClassID,
    5665             :       GIM_Try, /*On fail goto*//*Label 435*/ 11389, // Rule ID 3621 //
    5666             :         GIM_CheckFeatures, GIFBS_HasDQI,
    5667             :         // (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)  =>  (KXORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
    5668             :         GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KXORBrr,
    5669             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5670             :         // GIR_Coverage, 3621,
    5671             :         GIR_Done,
    5672             :       // Label 435: @11389
    5673             :       GIM_Try, /*On fail goto*//*Label 436*/ 11463, // Rule ID 13974 //
    5674             :         GIM_CheckFeatures, GIFBS_NoDQI,
    5675             :         // (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)  =>  (COPY_TO_REGCLASS:{ *:[v8i1] } (KXORWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK16:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK16:{ *:[i32] })), VK8:{ *:[i32] })
    5676             :         GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s1,
    5677             :         GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s1,
    5678             :         GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s1,
    5679             :         GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
    5680             :         GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
    5681             :         GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // src2
    5682             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
    5683             :         GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
    5684             :         GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
    5685             :         GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // src1
    5686             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
    5687             :         GIR_BuildMI, /*InsnID*/1, /*Opcode*/X86::KXORWrr,
    5688             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
    5689             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
    5690             :         GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
    5691             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
    5692             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5693             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5694             :         GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
    5695             :         GIR_EraseFromParent, /*InsnID*/0,
    5696             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK8*/12,
    5697             :         // GIR_Coverage, 13974,
    5698             :         GIR_Done,
    5699             :       // Label 436: @11463
    5700             :       GIM_Reject,
    5701             :     // Label 434: @11464
    5702             :     GIM_Reject,
    5703             :     // Label 386: @11465
    5704             :     GIM_Try, /*On fail goto*//*Label 437*/ 11496, // Rule ID 4972 //
    5705             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    5706             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    5707             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    5708             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    5709             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    5710             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    5711             :       // (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VPXORQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    5712             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VPXORQZrr,
    5713             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5714             :       // GIR_Coverage, 4972,
    5715             :       GIR_Done,
    5716             :     // Label 437: @11496
    5717             :     GIM_Reject,
    5718             :     // Label 387: @11497
    5719             :     GIM_Try, /*On fail goto*//*Label 438*/ 11528, // Rule ID 3622 //
    5720             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    5721             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s1,
    5722             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s1,
    5723             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK16RegClassID,
    5724             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK16RegClassID,
    5725             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK16RegClassID,
    5726             :       // (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)  =>  (KXORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
    5727             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KXORWrr,
    5728             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5729             :       // GIR_Coverage, 3622,
    5730             :       GIR_Done,
    5731             :     // Label 438: @11528
    5732             :     GIM_Reject,
    5733             :     // Label 388: @11529
    5734             :     GIM_Try, /*On fail goto*//*Label 439*/ 11560, // Rule ID 3623 //
    5735             :       GIM_CheckFeatures, GIFBS_HasBWI,
    5736             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s1,
    5737             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s1,
    5738             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK32RegClassID,
    5739             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK32RegClassID,
    5740             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK32RegClassID,
    5741             :       // (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)  =>  (KXORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
    5742             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KXORDrr,
    5743             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5744             :       // GIR_Coverage, 3623,
    5745             :       GIR_Done,
    5746             :     // Label 439: @11560
    5747             :     GIM_Reject,
    5748             :     // Label 389: @11561
    5749             :     GIM_Try, /*On fail goto*//*Label 440*/ 11592, // Rule ID 3624 //
    5750             :       GIM_CheckFeatures, GIFBS_HasBWI,
    5751             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s1,
    5752             :       GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v64s1,
    5753             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK64RegClassID,
    5754             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK64RegClassID,
    5755             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VK64RegClassID,
    5756             :       // (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)  =>  (KXORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
    5757             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::KXORQrr,
    5758             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5759             :       // GIR_Coverage, 3624,
    5760             :       GIR_Done,
    5761             :     // Label 440: @11592
    5762             :     GIM_Reject,
    5763             :     // Label 390: @11593
    5764             :     GIM_Reject,
    5765             :     // Label 6: @11594
    5766             :     GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/3, 25, /*)*//*default:*//*Label 458*/ 14942,
    5767             :     /*GILLT_s32*//*Label 441*/ 11622,
    5768             :     /*GILLT_s64*//*Label 442*/ 11784, 0,
    5769             :     /*GILLT_s128*//*Label 443*/ 11946, 0,
    5770             :     /*GILLT_v2s64*//*Label 444*/ 12002, 0,
    5771             :     /*GILLT_v4s32*//*Label 445*/ 12323,
    5772             :     /*GILLT_v4s64*//*Label 446*/ 12644, 0,
    5773             :     /*GILLT_v8s16*//*Label 447*/ 12965,
    5774             :     /*GILLT_v8s32*//*Label 448*/ 13126,
    5775             :     /*GILLT_v8s64*//*Label 449*/ 13447, 0,
    5776             :     /*GILLT_v16s8*//*Label 450*/ 13768,
    5777             :     /*GILLT_v16s16*//*Label 451*/ 13929,
    5778             :     /*GILLT_v16s32*//*Label 452*/ 14090,
    5779             :     /*GILLT_v32s1*//*Label 453*/ 14411,
    5780             :     /*GILLT_v32s8*//*Label 454*/ 14435,
    5781             :     /*GILLT_v32s16*//*Label 455*/ 14596,
    5782             :     /*GILLT_v64s1*//*Label 456*/ 14757,
    5783             :     /*GILLT_v64s8*//*Label 457*/ 14781,
    5784             :     // Label 441: @11622
    5785             :     GIM_Try, /*On fail goto*//*Label 459*/ 11645, // Rule ID 2202 //
    5786             :       GIM_CheckFeatures, GIFBS_UseAVX,
    5787             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    5788             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR32RegClassID,
    5789             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5790             :       // (bitconvert:{ *:[f32] } GR32:{ *:[i32] }:$src)  =>  (VMOVDI2SSrr:{ *:[f32] } GR32:{ *:[i32] }:$src)
    5791             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VMOVDI2SSrr,
    5792             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5793             :       // GIR_Coverage, 2202,
    5794             :       GIR_Done,
    5795             :     // Label 459: @11645
    5796             :     GIM_Try, /*On fail goto*//*Label 460*/ 11668, // Rule ID 2204 //
    5797             :       GIM_CheckFeatures, GIFBS_UseSSE2,
    5798             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    5799             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR32RegClassID,
    5800             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5801             :       // (bitconvert:{ *:[f32] } GR32:{ *:[i32] }:$src)  =>  (MOVDI2SSrr:{ *:[f32] } GR32:{ *:[i32] }:$src)
    5802             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::MOVDI2SSrr,
    5803             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5804             :       // GIR_Coverage, 2204,
    5805             :       GIR_Done,
    5806             :     // Label 460: @11668
    5807             :     GIM_Try, /*On fail goto*//*Label 461*/ 11691, // Rule ID 2218 //
    5808             :       GIM_CheckFeatures, GIFBS_UseAVX,
    5809             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    5810             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5811             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR32RegClassID,
    5812             :       // (bitconvert:{ *:[i32] } FR32:{ *:[f32] }:$src)  =>  (VMOVSS2DIrr:{ *:[i32] } FR32:{ *:[f32] }:$src)
    5813             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VMOVSS2DIrr,
    5814             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5815             :       // GIR_Coverage, 2218,
    5816             :       GIR_Done,
    5817             :     // Label 461: @11691
    5818             :     GIM_Try, /*On fail goto*//*Label 462*/ 11714, // Rule ID 2220 //
    5819             :       GIM_CheckFeatures, GIFBS_UseSSE2,
    5820             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    5821             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5822             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR32RegClassID,
    5823             :       // (bitconvert:{ *:[i32] } FR32:{ *:[f32] }:$src)  =>  (MOVSS2DIrr:{ *:[i32] } FR32:{ *:[f32] }:$src)
    5824             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::MOVSS2DIrr,
    5825             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5826             :       // GIR_Coverage, 2220,
    5827             :       GIR_Done,
    5828             :     // Label 462: @11714
    5829             :     GIM_Try, /*On fail goto*//*Label 463*/ 11737, // Rule ID 3794 //
    5830             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    5831             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    5832             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR32XRegClassID,
    5833             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    5834             :       // (bitconvert:{ *:[f32] } GR32:{ *:[i32] }:$src)  =>  (VMOVDI2SSZrr:{ *:[f32] } GR32:{ *:[i32] }:$src)
    5835             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VMOVDI2SSZrr,
    5836             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5837             :       // GIR_Coverage, 3794,
    5838             :       GIR_Done,
    5839             :     // Label 463: @11737
    5840             :     GIM_Try, /*On fail goto*//*Label 464*/ 11760, // Rule ID 3800 //
    5841             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    5842             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    5843             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5844             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR32XRegClassID,
    5845             :       // (bitconvert:{ *:[i32] } FR32X:{ *:[f32] }:$src)  =>  (VMOVSS2DIZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src)
    5846             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VMOVSS2DIZrr,
    5847             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5848             :       // GIR_Coverage, 3800,
    5849             :       GIR_Done,
    5850             :     // Label 464: @11760
    5851             :     GIM_Try, /*On fail goto*//*Label 465*/ 11783, // Rule ID 13932 //
    5852             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s1,
    5853             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    5854             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK32RegClassID,
    5855             :       // (bitconvert:{ *:[i32] } VK32:{ *:[v32i1] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[i32] } VK32:{ *:[v32i1] }:$src, GR32:{ *:[i32] })
    5856             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5857             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GR32*/27,
    5858             :       // GIR_Coverage, 13932,
    5859             :       GIR_Done,
    5860             :     // Label 465: @11783
    5861             :     GIM_Reject,
    5862             :     // Label 442: @11784
    5863             :     GIM_Try, /*On fail goto*//*Label 466*/ 11807, // Rule ID 2197 //
    5864             :       GIM_CheckFeatures, GIFBS_UseAVX,
    5865             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    5866             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR64RegClassID,
    5867             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5868             :       // (bitconvert:{ *:[f64] } GR64:{ *:[i64] }:$src)  =>  (VMOV64toSDrr:{ *:[f64] } GR64:{ *:[i64] }:$src)
    5869             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VMOV64toSDrr,
    5870             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5871             :       // GIR_Coverage, 2197,
    5872             :       GIR_Done,
    5873             :     // Label 466: @11807
    5874             :     GIM_Try, /*On fail goto*//*Label 467*/ 11830, // Rule ID 2201 //
    5875             :       GIM_CheckFeatures, GIFBS_UseSSE2,
    5876             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    5877             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR64RegClassID,
    5878             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5879             :       // (bitconvert:{ *:[f64] } GR64:{ *:[i64] }:$src)  =>  (MOV64toSDrr:{ *:[f64] } GR64:{ *:[i64] }:$src)
    5880             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::MOV64toSDrr,
    5881             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5882             :       // GIR_Coverage, 2201,
    5883             :       GIR_Done,
    5884             :     // Label 467: @11830
    5885             :     GIM_Try, /*On fail goto*//*Label 468*/ 11853, // Rule ID 2213 //
    5886             :       GIM_CheckFeatures, GIFBS_UseAVX,
    5887             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    5888             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5889             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR64RegClassID,
    5890             :       // (bitconvert:{ *:[i64] } FR64:{ *:[f64] }:$src)  =>  (VMOVSDto64rr:{ *:[i64] } FR64:{ *:[f64] }:$src)
    5891             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VMOVSDto64rr,
    5892             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5893             :       // GIR_Coverage, 2213,
    5894             :       GIR_Done,
    5895             :     // Label 468: @11853
    5896             :     GIM_Try, /*On fail goto*//*Label 469*/ 11876, // Rule ID 2216 //
    5897             :       GIM_CheckFeatures, GIFBS_UseSSE2,
    5898             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    5899             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5900             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR64RegClassID,
    5901             :       // (bitconvert:{ *:[i64] } FR64:{ *:[f64] }:$src)  =>  (MOVSDto64rr:{ *:[i64] } FR64:{ *:[f64] }:$src)
    5902             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::MOVSDto64rr,
    5903             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5904             :       // GIR_Coverage, 2216,
    5905             :       GIR_Done,
    5906             :     // Label 469: @11876
    5907             :     GIM_Try, /*On fail goto*//*Label 470*/ 11899, // Rule ID 3790 //
    5908             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    5909             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    5910             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR64XRegClassID,
    5911             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    5912             :       // (bitconvert:{ *:[f64] } GR64:{ *:[i64] }:$src)  =>  (VMOV64toSDZrr:{ *:[f64] } GR64:{ *:[i64] }:$src)
    5913             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VMOV64toSDZrr,
    5914             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5915             :       // GIR_Coverage, 3790,
    5916             :       GIR_Done,
    5917             :     // Label 470: @11899
    5918             :     GIM_Try, /*On fail goto*//*Label 471*/ 11922, // Rule ID 3792 //
    5919             :       GIM_CheckFeatures, GIFBS_HasAVX512,
    5920             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    5921             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5922             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR64XRegClassID,
    5923             :       // (bitconvert:{ *:[i64] } FR64X:{ *:[f64] }:$src)  =>  (VMOVSDto64Zrr:{ *:[i64] } FR64X:{ *:[f64] }:$src)
    5924             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/X86::VMOVSDto64Zrr,
    5925             :       GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    5926             :       // GIR_Coverage, 3792,
    5927             :       GIR_Done,
    5928             :     // Label 471: @11922
    5929             :     GIM_Try, /*On fail goto*//*Label 472*/ 11945, // Rule ID 13934 //
    5930             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s1,
    5931             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    5932             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VK64RegClassID,
    5933             :       // (bitconvert:{ *:[i64] } VK64:{ *:[v64i1] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[i64] } VK64:{ *:[v64i1] }:$src, GR64:{ *:[i32] })
    5934             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5935             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC GR64*/45,
    5936             :       // GIR_Coverage, 13934,
    5937             :       GIR_Done,
    5938             :     // Label 472: @11945
    5939             :     GIM_Reject,
    5940             :     // Label 443: @11946
    5941             :     GIM_Try, /*On fail goto*//*Label 473*/ 12001,
    5942             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s128,
    5943             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::FR128RegClassID,
    5944             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::FR128RegClassID,
    5945             :       GIM_Try, /*On fail goto*//*Label 474*/ 11980, // Rule ID 16218 //
    5946             :         // (bitconvert:{ *:[f128] } FR128:{ *:[i128] }:$src)  =>  FR128:{ *:[f128] }:$src
    5947             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5948             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5949             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    5950             :         GIR_EraseFromParent, /*InsnID*/0,
    5951             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC FR128*/74,
    5952             :         // GIR_Coverage, 16218,
    5953             :         GIR_Done,
    5954             :       // Label 474: @11980
    5955             :       GIM_Try, /*On fail goto*//*Label 475*/ 12000, // Rule ID 16219 //
    5956             :         // (bitconvert:{ *:[i128] } FR128:{ *:[f128] }:$src)  =>  FR128:{ *:[i128] }:$src
    5957             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5958             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5959             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    5960             :         GIR_EraseFromParent, /*InsnID*/0,
    5961             :         GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC FR128*/74,
    5962             :         // GIR_Coverage, 16219,
    5963             :         GIR_Done,
    5964             :       // Label 475: @12000
    5965             :       GIM_Reject,
    5966             :     // Label 473: @12001
    5967             :     GIM_Reject,
    5968             :     // Label 444: @12002
    5969             :     GIM_Try, /*On fail goto*//*Label 476*/ 12034, // Rule ID 16188 //
    5970             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    5971             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    5972             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    5973             :       // (bitconvert:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)  =>  VR128:{ *:[v2i64] }:$src
    5974             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5975             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5976             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    5977             :       GIR_EraseFromParent, /*InsnID*/0,
    5978             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    5979             :       // GIR_Coverage, 16188,
    5980             :       GIR_Done,
    5981             :     // Label 476: @12034
    5982             :     GIM_Try, /*On fail goto*//*Label 477*/ 12066, // Rule ID 16189 //
    5983             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    5984             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    5985             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    5986             :       // (bitconvert:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)  =>  VR128:{ *:[v2i64] }:$src
    5987             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    5988             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    5989             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    5990             :       GIR_EraseFromParent, /*InsnID*/0,
    5991             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    5992             :       // GIR_Coverage, 16189,
    5993             :       GIR_Done,
    5994             :     // Label 477: @12066
    5995             :     GIM_Try, /*On fail goto*//*Label 478*/ 12098, // Rule ID 16190 //
    5996             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    5997             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    5998             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    5999             :       // (bitconvert:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)  =>  VR128:{ *:[v2i64] }:$src
    6000             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6001             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6002             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6003             :       GIR_EraseFromParent, /*InsnID*/0,
    6004             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6005             :       // GIR_Coverage, 16190,
    6006             :       GIR_Done,
    6007             :     // Label 478: @12098
    6008             :     GIM_Try, /*On fail goto*//*Label 479*/ 12130, // Rule ID 16191 //
    6009             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6010             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6011             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6012             :       // (bitconvert:{ *:[v2i64] } VR128:{ *:[v2f64] }:$src)  =>  VR128:{ *:[v2i64] }:$src
    6013             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6014             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6015             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6016             :       GIR_EraseFromParent, /*InsnID*/0,
    6017             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6018             :       // GIR_Coverage, 16191,
    6019             :       GIR_Done,
    6020             :     // Label 479: @12130
    6021             :     GIM_Try, /*On fail goto*//*Label 480*/ 12162, // Rule ID 16192 //
    6022             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6023             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6024             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6025             :       // (bitconvert:{ *:[v2i64] } VR128:{ *:[v4f32] }:$src)  =>  VR128:{ *:[v2i64] }:$src
    6026             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6027             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6028             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6029             :       GIR_EraseFromParent, /*InsnID*/0,
    6030             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6031             :       // GIR_Coverage, 16192,
    6032             :       GIR_Done,
    6033             :     // Label 480: @12162
    6034             :     GIM_Try, /*On fail goto*//*Label 481*/ 12194, // Rule ID 16213 //
    6035             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6036             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6037             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6038             :       // (bitconvert:{ *:[v2f64] } VR128:{ *:[v2i64] }:$src)  =>  VR128:{ *:[v2f64] }:$src
    6039             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6040             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6041             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6042             :       GIR_EraseFromParent, /*InsnID*/0,
    6043             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6044             :       // GIR_Coverage, 16213,
    6045             :       GIR_Done,
    6046             :     // Label 481: @12194
    6047             :     GIM_Try, /*On fail goto*//*Label 482*/ 12226, // Rule ID 16214 //
    6048             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6049             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6050             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6051             :       // (bitconvert:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src)  =>  VR128:{ *:[v2f64] }:$src
    6052             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6053             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6054             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6055             :       GIR_EraseFromParent, /*InsnID*/0,
    6056             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6057             :       // GIR_Coverage, 16214,
    6058             :       GIR_Done,
    6059             :     // Label 482: @12226
    6060             :     GIM_Try, /*On fail goto*//*Label 483*/ 12258, // Rule ID 16215 //
    6061             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    6062             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6063             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6064             :       // (bitconvert:{ *:[v2f64] } VR128:{ *:[v8i16] }:$src)  =>  VR128:{ *:[v2f64] }:$src
    6065             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6066             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6067             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6068             :       GIR_EraseFromParent, /*InsnID*/0,
    6069             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6070             :       // GIR_Coverage, 16215,
    6071             :       GIR_Done,
    6072             :     // Label 483: @12258
    6073             :     GIM_Try, /*On fail goto*//*Label 484*/ 12290, // Rule ID 16216 //
    6074             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    6075             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6076             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6077             :       // (bitconvert:{ *:[v2f64] } VR128:{ *:[v16i8] }:$src)  =>  VR128:{ *:[v2f64] }:$src
    6078             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6079             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6080             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6081             :       GIR_EraseFromParent, /*InsnID*/0,
    6082             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6083             :       // GIR_Coverage, 16216,
    6084             :       GIR_Done,
    6085             :     // Label 484: @12290
    6086             :     GIM_Try, /*On fail goto*//*Label 485*/ 12322, // Rule ID 16217 //
    6087             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6088             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6089             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6090             :       // (bitconvert:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src)  =>  VR128:{ *:[v2f64] }:$src
    6091             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6092             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6093             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6094             :       GIR_EraseFromParent, /*InsnID*/0,
    6095             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6096             :       // GIR_Coverage, 16217,
    6097             :       GIR_Done,
    6098             :     // Label 485: @12322
    6099             :     GIM_Reject,
    6100             :     // Label 445: @12323
    6101             :     GIM_Try, /*On fail goto*//*Label 486*/ 12355, // Rule ID 16193 //
    6102             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6103             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6104             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6105             :       // (bitconvert:{ *:[v4i32] } VR128:{ *:[v2i64] }:$src)  =>  VR128:{ *:[v4i32] }:$src
    6106             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6107             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6108             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6109             :       GIR_EraseFromParent, /*InsnID*/0,
    6110             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6111             :       // GIR_Coverage, 16193,
    6112             :       GIR_Done,
    6113             :     // Label 486: @12355
    6114             :     GIM_Try, /*On fail goto*//*Label 487*/ 12387, // Rule ID 16194 //
    6115             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    6116             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6117             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6118             :       // (bitconvert:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)  =>  VR128:{ *:[v4i32] }:$src
    6119             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6120             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6121             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6122             :       GIR_EraseFromParent, /*InsnID*/0,
    6123             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6124             :       // GIR_Coverage, 16194,
    6125             :       GIR_Done,
    6126             :     // Label 487: @12387
    6127             :     GIM_Try, /*On fail goto*//*Label 488*/ 12419, // Rule ID 16195 //
    6128             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    6129             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6130             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6131             :       // (bitconvert:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)  =>  VR128:{ *:[v4i32] }:$src
    6132             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6133             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6134             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6135             :       GIR_EraseFromParent, /*InsnID*/0,
    6136             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6137             :       // GIR_Coverage, 16195,
    6138             :       GIR_Done,
    6139             :     // Label 488: @12419
    6140             :     GIM_Try, /*On fail goto*//*Label 489*/ 12451, // Rule ID 16196 //
    6141             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6142             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6143             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6144             :       // (bitconvert:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src)  =>  VR128:{ *:[v4i32] }:$src
    6145             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6146             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6147             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6148             :       GIR_EraseFromParent, /*InsnID*/0,
    6149             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6150             :       // GIR_Coverage, 16196,
    6151             :       GIR_Done,
    6152             :     // Label 489: @12451
    6153             :     GIM_Try, /*On fail goto*//*Label 490*/ 12483, // Rule ID 16197 //
    6154             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6155             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6156             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6157             :       // (bitconvert:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)  =>  VR128:{ *:[v4i32] }:$src
    6158             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6159             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6160             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6161             :       GIR_EraseFromParent, /*InsnID*/0,
    6162             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6163             :       // GIR_Coverage, 16197,
    6164             :       GIR_Done,
    6165             :     // Label 490: @12483
    6166             :     GIM_Try, /*On fail goto*//*Label 491*/ 12515, // Rule ID 16208 //
    6167             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6168             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6169             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6170             :       // (bitconvert:{ *:[v4f32] } VR128:{ *:[v2i64] }:$src)  =>  VR128:{ *:[v4f32] }:$src
    6171             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6172             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6173             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6174             :       GIR_EraseFromParent, /*InsnID*/0,
    6175             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6176             :       // GIR_Coverage, 16208,
    6177             :       GIR_Done,
    6178             :     // Label 491: @12515
    6179             :     GIM_Try, /*On fail goto*//*Label 492*/ 12547, // Rule ID 16209 //
    6180             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6181             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6182             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6183             :       // (bitconvert:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src)  =>  VR128:{ *:[v4f32] }:$src
    6184             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6185             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6186             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6187             :       GIR_EraseFromParent, /*InsnID*/0,
    6188             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6189             :       // GIR_Coverage, 16209,
    6190             :       GIR_Done,
    6191             :     // Label 492: @12547
    6192             :     GIM_Try, /*On fail goto*//*Label 493*/ 12579, // Rule ID 16210 //
    6193             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    6194             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6195             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6196             :       // (bitconvert:{ *:[v4f32] } VR128:{ *:[v8i16] }:$src)  =>  VR128:{ *:[v4f32] }:$src
    6197             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6198             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6199             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6200             :       GIR_EraseFromParent, /*InsnID*/0,
    6201             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6202             :       // GIR_Coverage, 16210,
    6203             :       GIR_Done,
    6204             :     // Label 493: @12579
    6205             :     GIM_Try, /*On fail goto*//*Label 494*/ 12611, // Rule ID 16211 //
    6206             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    6207             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6208             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6209             :       // (bitconvert:{ *:[v4f32] } VR128:{ *:[v16i8] }:$src)  =>  VR128:{ *:[v4f32] }:$src
    6210             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6211             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6212             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6213             :       GIR_EraseFromParent, /*InsnID*/0,
    6214             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6215             :       // GIR_Coverage, 16211,
    6216             :       GIR_Done,
    6217             :     // Label 494: @12611
    6218             :     GIM_Try, /*On fail goto*//*Label 495*/ 12643, // Rule ID 16212 //
    6219             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6220             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6221             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6222             :       // (bitconvert:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src)  =>  VR128:{ *:[v4f32] }:$src
    6223             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6224             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6225             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6226             :       GIR_EraseFromParent, /*InsnID*/0,
    6227             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6228             :       // GIR_Coverage, 16212,
    6229             :       GIR_Done,
    6230             :     // Label 495: @12643
    6231             :     GIM_Reject,
    6232             :     // Label 446: @12644
    6233             :     GIM_Try, /*On fail goto*//*Label 496*/ 12676, // Rule ID 16220 //
    6234             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6235             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6236             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6237             :       // (bitconvert:{ *:[v4i64] } VR256:{ *:[v8i32] }:$src)  =>  VR256:{ *:[v4i64] }:$src
    6238             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6239             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6240             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6241             :       GIR_EraseFromParent, /*InsnID*/0,
    6242             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6243             :       // GIR_Coverage, 16220,
    6244             :       GIR_Done,
    6245             :     // Label 496: @12676
    6246             :     GIM_Try, /*On fail goto*//*Label 497*/ 12708, // Rule ID 16221 //
    6247             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s16,
    6248             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6249             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6250             :       // (bitconvert:{ *:[v4i64] } VR256:{ *:[v16i16] }:$src)  =>  VR256:{ *:[v4i64] }:$src
    6251             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6252             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6253             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6254             :       GIR_EraseFromParent, /*InsnID*/0,
    6255             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6256             :       // GIR_Coverage, 16221,
    6257             :       GIR_Done,
    6258             :     // Label 497: @12708
    6259             :     GIM_Try, /*On fail goto*//*Label 498*/ 12740, // Rule ID 16222 //
    6260             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s8,
    6261             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6262             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6263             :       // (bitconvert:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src)  =>  VR256:{ *:[v4i64] }:$src
    6264             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6265             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6266             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6267             :       GIR_EraseFromParent, /*InsnID*/0,
    6268             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6269             :       // GIR_Coverage, 16222,
    6270             :       GIR_Done,
    6271             :     // Label 498: @12740
    6272             :     GIM_Try, /*On fail goto*//*Label 499*/ 12772, // Rule ID 16223 //
    6273             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6274             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6275             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6276             :       // (bitconvert:{ *:[v4i64] } VR256:{ *:[v8f32] }:$src)  =>  VR256:{ *:[v4i64] }:$src
    6277             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6278             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6279             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6280             :       GIR_EraseFromParent, /*InsnID*/0,
    6281             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6282             :       // GIR_Coverage, 16223,
    6283             :       GIR_Done,
    6284             :     // Label 499: @12772
    6285             :     GIM_Try, /*On fail goto*//*Label 500*/ 12804, // Rule ID 16224 //
    6286             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6287             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6288             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6289             :       // (bitconvert:{ *:[v4i64] } VR256:{ *:[v4f64] }:$src)  =>  VR256:{ *:[v4i64] }:$src
    6290             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6291             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6292             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6293             :       GIR_EraseFromParent, /*InsnID*/0,
    6294             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6295             :       // GIR_Coverage, 16224,
    6296             :       GIR_Done,
    6297             :     // Label 500: @12804
    6298             :     GIM_Try, /*On fail goto*//*Label 501*/ 12836, // Rule ID 16245 //
    6299             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6300             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6301             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6302             :       // (bitconvert:{ *:[v4f64] } VR256:{ *:[v4i64] }:$src)  =>  VR256:{ *:[v4f64] }:$src
    6303             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6304             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6305             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6306             :       GIR_EraseFromParent, /*InsnID*/0,
    6307             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6308             :       // GIR_Coverage, 16245,
    6309             :       GIR_Done,
    6310             :     // Label 501: @12836
    6311             :     GIM_Try, /*On fail goto*//*Label 502*/ 12868, // Rule ID 16246 //
    6312             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6313             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6314             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6315             :       // (bitconvert:{ *:[v4f64] } VR256:{ *:[v8i32] }:$src)  =>  VR256:{ *:[v4f64] }:$src
    6316             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6317             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6318             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6319             :       GIR_EraseFromParent, /*InsnID*/0,
    6320             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6321             :       // GIR_Coverage, 16246,
    6322             :       GIR_Done,
    6323             :     // Label 502: @12868
    6324             :     GIM_Try, /*On fail goto*//*Label 503*/ 12900, // Rule ID 16247 //
    6325             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s16,
    6326             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6327             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6328             :       // (bitconvert:{ *:[v4f64] } VR256:{ *:[v16i16] }:$src)  =>  VR256:{ *:[v4f64] }:$src
    6329             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6330             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6331             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6332             :       GIR_EraseFromParent, /*InsnID*/0,
    6333             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6334             :       // GIR_Coverage, 16247,
    6335             :       GIR_Done,
    6336             :     // Label 503: @12900
    6337             :     GIM_Try, /*On fail goto*//*Label 504*/ 12932, // Rule ID 16248 //
    6338             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s8,
    6339             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6340             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6341             :       // (bitconvert:{ *:[v4f64] } VR256:{ *:[v32i8] }:$src)  =>  VR256:{ *:[v4f64] }:$src
    6342             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6343             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6344             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6345             :       GIR_EraseFromParent, /*InsnID*/0,
    6346             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6347             :       // GIR_Coverage, 16248,
    6348             :       GIR_Done,
    6349             :     // Label 504: @12932
    6350             :     GIM_Try, /*On fail goto*//*Label 505*/ 12964, // Rule ID 16249 //
    6351             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6352             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6353             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6354             :       // (bitconvert:{ *:[v4f64] } VR256:{ *:[v8f32] }:$src)  =>  VR256:{ *:[v4f64] }:$src
    6355             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6356             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6357             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6358             :       GIR_EraseFromParent, /*InsnID*/0,
    6359             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6360             :       // GIR_Coverage, 16249,
    6361             :       GIR_Done,
    6362             :     // Label 505: @12964
    6363             :     GIM_Reject,
    6364             :     // Label 447: @12965
    6365             :     GIM_Try, /*On fail goto*//*Label 506*/ 12997, // Rule ID 16198 //
    6366             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6367             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6368             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6369             :       // (bitconvert:{ *:[v8i16] } VR128:{ *:[v2i64] }:$src)  =>  VR128:{ *:[v8i16] }:$src
    6370             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6371             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6372             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6373             :       GIR_EraseFromParent, /*InsnID*/0,
    6374             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6375             :       // GIR_Coverage, 16198,
    6376             :       GIR_Done,
    6377             :     // Label 506: @12997
    6378             :     GIM_Try, /*On fail goto*//*Label 507*/ 13029, // Rule ID 16199 //
    6379             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6380             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6381             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6382             :       // (bitconvert:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src)  =>  VR128:{ *:[v8i16] }:$src
    6383             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6384             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6385             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6386             :       GIR_EraseFromParent, /*InsnID*/0,
    6387             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6388             :       // GIR_Coverage, 16199,
    6389             :       GIR_Done,
    6390             :     // Label 507: @13029
    6391             :     GIM_Try, /*On fail goto*//*Label 508*/ 13061, // Rule ID 16200 //
    6392             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
    6393             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6394             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6395             :       // (bitconvert:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)  =>  VR128:{ *:[v8i16] }:$src
    6396             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6397             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6398             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6399             :       GIR_EraseFromParent, /*InsnID*/0,
    6400             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6401             :       // GIR_Coverage, 16200,
    6402             :       GIR_Done,
    6403             :     // Label 508: @13061
    6404             :     GIM_Try, /*On fail goto*//*Label 509*/ 13093, // Rule ID 16201 //
    6405             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6406             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6407             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6408             :       // (bitconvert:{ *:[v8i16] } VR128:{ *:[v2f64] }:$src)  =>  VR128:{ *:[v8i16] }:$src
    6409             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6410             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6411             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6412             :       GIR_EraseFromParent, /*InsnID*/0,
    6413             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6414             :       // GIR_Coverage, 16201,
    6415             :       GIR_Done,
    6416             :     // Label 509: @13093
    6417             :     GIM_Try, /*On fail goto*//*Label 510*/ 13125, // Rule ID 16202 //
    6418             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6419             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6420             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6421             :       // (bitconvert:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src)  =>  VR128:{ *:[v8i16] }:$src
    6422             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6423             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6424             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6425             :       GIR_EraseFromParent, /*InsnID*/0,
    6426             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6427             :       // GIR_Coverage, 16202,
    6428             :       GIR_Done,
    6429             :     // Label 510: @13125
    6430             :     GIM_Reject,
    6431             :     // Label 448: @13126
    6432             :     GIM_Try, /*On fail goto*//*Label 511*/ 13158, // Rule ID 16225 //
    6433             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6434             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6435             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6436             :       // (bitconvert:{ *:[v8i32] } VR256:{ *:[v4i64] }:$src)  =>  VR256:{ *:[v8i32] }:$src
    6437             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6438             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6439             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6440             :       GIR_EraseFromParent, /*InsnID*/0,
    6441             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6442             :       // GIR_Coverage, 16225,
    6443             :       GIR_Done,
    6444             :     // Label 511: @13158
    6445             :     GIM_Try, /*On fail goto*//*Label 512*/ 13190, // Rule ID 16226 //
    6446             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s16,
    6447             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6448             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6449             :       // (bitconvert:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src)  =>  VR256:{ *:[v8i32] }:$src
    6450             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6451             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6452             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6453             :       GIR_EraseFromParent, /*InsnID*/0,
    6454             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6455             :       // GIR_Coverage, 16226,
    6456             :       GIR_Done,
    6457             :     // Label 512: @13190
    6458             :     GIM_Try, /*On fail goto*//*Label 513*/ 13222, // Rule ID 16227 //
    6459             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s8,
    6460             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6461             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6462             :       // (bitconvert:{ *:[v8i32] } VR256:{ *:[v32i8] }:$src)  =>  VR256:{ *:[v8i32] }:$src
    6463             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6464             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6465             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6466             :       GIR_EraseFromParent, /*InsnID*/0,
    6467             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6468             :       // GIR_Coverage, 16227,
    6469             :       GIR_Done,
    6470             :     // Label 513: @13222
    6471             :     GIM_Try, /*On fail goto*//*Label 514*/ 13254, // Rule ID 16228 //
    6472             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6473             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6474             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6475             :       // (bitconvert:{ *:[v8i32] } VR256:{ *:[v4f64] }:$src)  =>  VR256:{ *:[v8i32] }:$src
    6476             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6477             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6478             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6479             :       GIR_EraseFromParent, /*InsnID*/0,
    6480             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6481             :       // GIR_Coverage, 16228,
    6482             :       GIR_Done,
    6483             :     // Label 514: @13254
    6484             :     GIM_Try, /*On fail goto*//*Label 515*/ 13286, // Rule ID 16229 //
    6485             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6486             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6487             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6488             :       // (bitconvert:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src)  =>  VR256:{ *:[v8i32] }:$src
    6489             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6490             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6491             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6492             :       GIR_EraseFromParent, /*InsnID*/0,
    6493             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6494             :       // GIR_Coverage, 16229,
    6495             :       GIR_Done,
    6496             :     // Label 515: @13286
    6497             :     GIM_Try, /*On fail goto*//*Label 516*/ 13318, // Rule ID 16240 //
    6498             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6499             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6500             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6501             :       // (bitconvert:{ *:[v8f32] } VR256:{ *:[v4i64] }:$src)  =>  VR256:{ *:[v8f32] }:$src
    6502             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6503             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6504             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6505             :       GIR_EraseFromParent, /*InsnID*/0,
    6506             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6507             :       // GIR_Coverage, 16240,
    6508             :       GIR_Done,
    6509             :     // Label 516: @13318
    6510             :     GIM_Try, /*On fail goto*//*Label 517*/ 13350, // Rule ID 16241 //
    6511             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6512             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6513             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6514             :       // (bitconvert:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src)  =>  VR256:{ *:[v8f32] }:$src
    6515             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6516             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6517             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6518             :       GIR_EraseFromParent, /*InsnID*/0,
    6519             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6520             :       // GIR_Coverage, 16241,
    6521             :       GIR_Done,
    6522             :     // Label 517: @13350
    6523             :     GIM_Try, /*On fail goto*//*Label 518*/ 13382, // Rule ID 16242 //
    6524             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s16,
    6525             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6526             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6527             :       // (bitconvert:{ *:[v8f32] } VR256:{ *:[v16i16] }:$src)  =>  VR256:{ *:[v8f32] }:$src
    6528             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6529             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6530             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6531             :       GIR_EraseFromParent, /*InsnID*/0,
    6532             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6533             :       // GIR_Coverage, 16242,
    6534             :       GIR_Done,
    6535             :     // Label 518: @13382
    6536             :     GIM_Try, /*On fail goto*//*Label 519*/ 13414, // Rule ID 16243 //
    6537             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s8,
    6538             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6539             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6540             :       // (bitconvert:{ *:[v8f32] } VR256:{ *:[v32i8] }:$src)  =>  VR256:{ *:[v8f32] }:$src
    6541             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6542             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6543             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6544             :       GIR_EraseFromParent, /*InsnID*/0,
    6545             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6546             :       // GIR_Coverage, 16243,
    6547             :       GIR_Done,
    6548             :     // Label 519: @13414
    6549             :     GIM_Try, /*On fail goto*//*Label 520*/ 13446, // Rule ID 16244 //
    6550             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6551             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6552             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6553             :       // (bitconvert:{ *:[v8f32] } VR256:{ *:[v4f64] }:$src)  =>  VR256:{ *:[v8f32] }:$src
    6554             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6555             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6556             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6557             :       GIR_EraseFromParent, /*InsnID*/0,
    6558             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6559             :       // GIR_Coverage, 16244,
    6560             :       GIR_Done,
    6561             :     // Label 520: @13446
    6562             :     GIM_Reject,
    6563             :     // Label 449: @13447
    6564             :     GIM_Try, /*On fail goto*//*Label 521*/ 13479, // Rule ID 16250 //
    6565             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    6566             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6567             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6568             :       // (bitconvert:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src)  =>  VR512:{ *:[v8f64] }:$src
    6569             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6570             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6571             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6572             :       GIR_EraseFromParent, /*InsnID*/0,
    6573             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6574             :       // GIR_Coverage, 16250,
    6575             :       GIR_Done,
    6576             :     // Label 521: @13479
    6577             :     GIM_Try, /*On fail goto*//*Label 522*/ 13511, // Rule ID 16251 //
    6578             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    6579             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6580             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6581             :       // (bitconvert:{ *:[v8f64] } VR512:{ *:[v16i32] }:$src)  =>  VR512:{ *:[v8f64] }:$src
    6582             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6583             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6584             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6585             :       GIR_EraseFromParent, /*InsnID*/0,
    6586             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6587             :       // GIR_Coverage, 16251,
    6588             :       GIR_Done,
    6589             :     // Label 522: @13511
    6590             :     GIM_Try, /*On fail goto*//*Label 523*/ 13543, // Rule ID 16252 //
    6591             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s16,
    6592             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6593             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6594             :       // (bitconvert:{ *:[v8f64] } VR512:{ *:[v32i16] }:$src)  =>  VR512:{ *:[v8f64] }:$src
    6595             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6596             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6597             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6598             :       GIR_EraseFromParent, /*InsnID*/0,
    6599             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6600             :       // GIR_Coverage, 16252,
    6601             :       GIR_Done,
    6602             :     // Label 523: @13543
    6603             :     GIM_Try, /*On fail goto*//*Label 524*/ 13575, // Rule ID 16253 //
    6604             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s8,
    6605             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6606             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6607             :       // (bitconvert:{ *:[v8f64] } VR512:{ *:[v64i8] }:$src)  =>  VR512:{ *:[v8f64] }:$src
    6608             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6609             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6610             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6611             :       GIR_EraseFromParent, /*InsnID*/0,
    6612             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6613             :       // GIR_Coverage, 16253,
    6614             :       GIR_Done,
    6615             :     // Label 524: @13575
    6616             :     GIM_Try, /*On fail goto*//*Label 525*/ 13607, // Rule ID 16254 //
    6617             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    6618             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6619             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6620             :       // (bitconvert:{ *:[v8f64] } VR512:{ *:[v16f32] }:$src)  =>  VR512:{ *:[v8f64] }:$src
    6621             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6622             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6623             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6624             :       GIR_EraseFromParent, /*InsnID*/0,
    6625             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6626             :       // GIR_Coverage, 16254,
    6627             :       GIR_Done,
    6628             :     // Label 525: @13607
    6629             :     GIM_Try, /*On fail goto*//*Label 526*/ 13639, // Rule ID 16260 //
    6630             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    6631             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6632             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6633             :       // (bitconvert:{ *:[v8i64] } VR512:{ *:[v16i32] }:$src)  =>  VR512:{ *:[v8i64] }:$src
    6634             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6635             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6636             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6637             :       GIR_EraseFromParent, /*InsnID*/0,
    6638             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6639             :       // GIR_Coverage, 16260,
    6640             :       GIR_Done,
    6641             :     // Label 526: @13639
    6642             :     GIM_Try, /*On fail goto*//*Label 527*/ 13671, // Rule ID 16261 //
    6643             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s16,
    6644             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6645             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6646             :       // (bitconvert:{ *:[v8i64] } VR512:{ *:[v32i16] }:$src)  =>  VR512:{ *:[v8i64] }:$src
    6647             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6648             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6649             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6650             :       GIR_EraseFromParent, /*InsnID*/0,
    6651             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6652             :       // GIR_Coverage, 16261,
    6653             :       GIR_Done,
    6654             :     // Label 527: @13671
    6655             :     GIM_Try, /*On fail goto*//*Label 528*/ 13703, // Rule ID 16262 //
    6656             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s8,
    6657             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6658             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6659             :       // (bitconvert:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src)  =>  VR512:{ *:[v8i64] }:$src
    6660             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6661             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6662             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6663             :       GIR_EraseFromParent, /*InsnID*/0,
    6664             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6665             :       // GIR_Coverage, 16262,
    6666             :       GIR_Done,
    6667             :     // Label 528: @13703
    6668             :     GIM_Try, /*On fail goto*//*Label 529*/ 13735, // Rule ID 16263 //
    6669             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    6670             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6671             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6672             :       // (bitconvert:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)  =>  VR512:{ *:[v8i64] }:$src
    6673             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6674             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6675             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6676             :       GIR_EraseFromParent, /*InsnID*/0,
    6677             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6678             :       // GIR_Coverage, 16263,
    6679             :       GIR_Done,
    6680             :     // Label 529: @13735
    6681             :     GIM_Try, /*On fail goto*//*Label 530*/ 13767, // Rule ID 16264 //
    6682             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    6683             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6684             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6685             :       // (bitconvert:{ *:[v8i64] } VR512:{ *:[v16f32] }:$src)  =>  VR512:{ *:[v8i64] }:$src
    6686             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6687             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6688             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6689             :       GIR_EraseFromParent, /*InsnID*/0,
    6690             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6691             :       // GIR_Coverage, 16264,
    6692             :       GIR_Done,
    6693             :     // Label 530: @13767
    6694             :     GIM_Reject,
    6695             :     // Label 450: @13768
    6696             :     GIM_Try, /*On fail goto*//*Label 531*/ 13800, // Rule ID 16203 //
    6697             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6698             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6699             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6700             :       // (bitconvert:{ *:[v16i8] } VR128:{ *:[v2i64] }:$src)  =>  VR128:{ *:[v16i8] }:$src
    6701             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6702             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6703             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6704             :       GIR_EraseFromParent, /*InsnID*/0,
    6705             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6706             :       // GIR_Coverage, 16203,
    6707             :       GIR_Done,
    6708             :     // Label 531: @13800
    6709             :     GIM_Try, /*On fail goto*//*Label 532*/ 13832, // Rule ID 16204 //
    6710             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6711             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6712             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6713             :       // (bitconvert:{ *:[v16i8] } VR128:{ *:[v4i32] }:$src)  =>  VR128:{ *:[v16i8] }:$src
    6714             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6715             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6716             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6717             :       GIR_EraseFromParent, /*InsnID*/0,
    6718             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6719             :       // GIR_Coverage, 16204,
    6720             :       GIR_Done,
    6721             :     // Label 532: @13832
    6722             :     GIM_Try, /*On fail goto*//*Label 533*/ 13864, // Rule ID 16205 //
    6723             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
    6724             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6725             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6726             :       // (bitconvert:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src)  =>  VR128:{ *:[v16i8] }:$src
    6727             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6728             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6729             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6730             :       GIR_EraseFromParent, /*InsnID*/0,
    6731             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6732             :       // GIR_Coverage, 16205,
    6733             :       GIR_Done,
    6734             :     // Label 533: @13864
    6735             :     GIM_Try, /*On fail goto*//*Label 534*/ 13896, // Rule ID 16206 //
    6736             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
    6737             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6738             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6739             :       // (bitconvert:{ *:[v16i8] } VR128:{ *:[v2f64] }:$src)  =>  VR128:{ *:[v16i8] }:$src
    6740             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6741             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6742             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6743             :       GIR_EraseFromParent, /*InsnID*/0,
    6744             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6745             :       // GIR_Coverage, 16206,
    6746             :       GIR_Done,
    6747             :     // Label 534: @13896
    6748             :     GIM_Try, /*On fail goto*//*Label 535*/ 13928, // Rule ID 16207 //
    6749             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
    6750             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    6751             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR128RegClassID,
    6752             :       // (bitconvert:{ *:[v16i8] } VR128:{ *:[v4f32] }:$src)  =>  VR128:{ *:[v16i8] }:$src
    6753             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6754             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6755             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6756             :       GIR_EraseFromParent, /*InsnID*/0,
    6757             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR128*/75,
    6758             :       // GIR_Coverage, 16207,
    6759             :       GIR_Done,
    6760             :     // Label 535: @13928
    6761             :     GIM_Reject,
    6762             :     // Label 451: @13929
    6763             :     GIM_Try, /*On fail goto*//*Label 536*/ 13961, // Rule ID 16230 //
    6764             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6765             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6766             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6767             :       // (bitconvert:{ *:[v16i16] } VR256:{ *:[v4i64] }:$src)  =>  VR256:{ *:[v16i16] }:$src
    6768             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6769             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6770             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6771             :       GIR_EraseFromParent, /*InsnID*/0,
    6772             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6773             :       // GIR_Coverage, 16230,
    6774             :       GIR_Done,
    6775             :     // Label 536: @13961
    6776             :     GIM_Try, /*On fail goto*//*Label 537*/ 13993, // Rule ID 16231 //
    6777             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6778             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6779             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6780             :       // (bitconvert:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src)  =>  VR256:{ *:[v16i16] }:$src
    6781             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6782             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6783             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6784             :       GIR_EraseFromParent, /*InsnID*/0,
    6785             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6786             :       // GIR_Coverage, 16231,
    6787             :       GIR_Done,
    6788             :     // Label 537: @13993
    6789             :     GIM_Try, /*On fail goto*//*Label 538*/ 14025, // Rule ID 16232 //
    6790             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s8,
    6791             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6792             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6793             :       // (bitconvert:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src)  =>  VR256:{ *:[v16i16] }:$src
    6794             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6795             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6796             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6797             :       GIR_EraseFromParent, /*InsnID*/0,
    6798             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6799             :       // GIR_Coverage, 16232,
    6800             :       GIR_Done,
    6801             :     // Label 538: @14025
    6802             :     GIM_Try, /*On fail goto*//*Label 539*/ 14057, // Rule ID 16233 //
    6803             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6804             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6805             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6806             :       // (bitconvert:{ *:[v16i16] } VR256:{ *:[v4f64] }:$src)  =>  VR256:{ *:[v16i16] }:$src
    6807             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6808             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6809             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6810             :       GIR_EraseFromParent, /*InsnID*/0,
    6811             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6812             :       // GIR_Coverage, 16233,
    6813             :       GIR_Done,
    6814             :     // Label 539: @14057
    6815             :     GIM_Try, /*On fail goto*//*Label 540*/ 14089, // Rule ID 16234 //
    6816             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6817             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6818             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6819             :       // (bitconvert:{ *:[v16i16] } VR256:{ *:[v8f32] }:$src)  =>  VR256:{ *:[v16i16] }:$src
    6820             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6821             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6822             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6823             :       GIR_EraseFromParent, /*InsnID*/0,
    6824             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6825             :       // GIR_Coverage, 16234,
    6826             :       GIR_Done,
    6827             :     // Label 540: @14089
    6828             :     GIM_Reject,
    6829             :     // Label 452: @14090
    6830             :     GIM_Try, /*On fail goto*//*Label 541*/ 14122, // Rule ID 16255 //
    6831             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    6832             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6833             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6834             :       // (bitconvert:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src)  =>  VR512:{ *:[v16f32] }:$src
    6835             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6836             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6837             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6838             :       GIR_EraseFromParent, /*InsnID*/0,
    6839             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6840             :       // GIR_Coverage, 16255,
    6841             :       GIR_Done,
    6842             :     // Label 541: @14122
    6843             :     GIM_Try, /*On fail goto*//*Label 542*/ 14154, // Rule ID 16256 //
    6844             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    6845             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6846             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6847             :       // (bitconvert:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src)  =>  VR512:{ *:[v16f32] }:$src
    6848             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6849             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6850             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6851             :       GIR_EraseFromParent, /*InsnID*/0,
    6852             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6853             :       // GIR_Coverage, 16256,
    6854             :       GIR_Done,
    6855             :     // Label 542: @14154
    6856             :     GIM_Try, /*On fail goto*//*Label 543*/ 14186, // Rule ID 16257 //
    6857             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s16,
    6858             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6859             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6860             :       // (bitconvert:{ *:[v16f32] } VR512:{ *:[v32i16] }:$src)  =>  VR512:{ *:[v16f32] }:$src
    6861             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6862             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6863             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6864             :       GIR_EraseFromParent, /*InsnID*/0,
    6865             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6866             :       // GIR_Coverage, 16257,
    6867             :       GIR_Done,
    6868             :     // Label 543: @14186
    6869             :     GIM_Try, /*On fail goto*//*Label 544*/ 14218, // Rule ID 16258 //
    6870             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s8,
    6871             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6872             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6873             :       // (bitconvert:{ *:[v16f32] } VR512:{ *:[v64i8] }:$src)  =>  VR512:{ *:[v16f32] }:$src
    6874             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6875             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6876             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6877             :       GIR_EraseFromParent, /*InsnID*/0,
    6878             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6879             :       // GIR_Coverage, 16258,
    6880             :       GIR_Done,
    6881             :     // Label 544: @14218
    6882             :     GIM_Try, /*On fail goto*//*Label 545*/ 14250, // Rule ID 16259 //
    6883             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    6884             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6885             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6886             :       // (bitconvert:{ *:[v16f32] } VR512:{ *:[v8f64] }:$src)  =>  VR512:{ *:[v16f32] }:$src
    6887             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6888             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6889             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6890             :       GIR_EraseFromParent, /*InsnID*/0,
    6891             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6892             :       // GIR_Coverage, 16259,
    6893             :       GIR_Done,
    6894             :     // Label 545: @14250
    6895             :     GIM_Try, /*On fail goto*//*Label 546*/ 14282, // Rule ID 16265 //
    6896             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    6897             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6898             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6899             :       // (bitconvert:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src)  =>  VR512:{ *:[v16i32] }:$src
    6900             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6901             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6902             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6903             :       GIR_EraseFromParent, /*InsnID*/0,
    6904             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6905             :       // GIR_Coverage, 16265,
    6906             :       GIR_Done,
    6907             :     // Label 546: @14282
    6908             :     GIM_Try, /*On fail goto*//*Label 547*/ 14314, // Rule ID 16266 //
    6909             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    6910             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6911             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6912             :       // (bitconvert:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)  =>  VR512:{ *:[v16i32] }:$src
    6913             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6914             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6915             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6916             :       GIR_EraseFromParent, /*InsnID*/0,
    6917             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6918             :       // GIR_Coverage, 16266,
    6919             :       GIR_Done,
    6920             :     // Label 547: @14314
    6921             :     GIM_Try, /*On fail goto*//*Label 548*/ 14346, // Rule ID 16267 //
    6922             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s16,
    6923             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6924             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6925             :       // (bitconvert:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src)  =>  VR512:{ *:[v16i32] }:$src
    6926             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6927             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6928             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6929             :       GIR_EraseFromParent, /*InsnID*/0,
    6930             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6931             :       // GIR_Coverage, 16267,
    6932             :       GIR_Done,
    6933             :     // Label 548: @14346
    6934             :     GIM_Try, /*On fail goto*//*Label 549*/ 14378, // Rule ID 16268 //
    6935             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s8,
    6936             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6937             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6938             :       // (bitconvert:{ *:[v16i32] } VR512:{ *:[v64i8] }:$src)  =>  VR512:{ *:[v16i32] }:$src
    6939             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6940             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6941             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6942             :       GIR_EraseFromParent, /*InsnID*/0,
    6943             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6944             :       // GIR_Coverage, 16268,
    6945             :       GIR_Done,
    6946             :     // Label 549: @14378
    6947             :     GIM_Try, /*On fail goto*//*Label 550*/ 14410, // Rule ID 16269 //
    6948             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    6949             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    6950             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    6951             :       // (bitconvert:{ *:[v16i32] } VR512:{ *:[v8f64] }:$src)  =>  VR512:{ *:[v16i32] }:$src
    6952             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6953             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6954             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6955             :       GIR_EraseFromParent, /*InsnID*/0,
    6956             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    6957             :       // GIR_Coverage, 16269,
    6958             :       GIR_Done,
    6959             :     // Label 550: @14410
    6960             :     GIM_Reject,
    6961             :     // Label 453: @14411
    6962             :     GIM_Try, /*On fail goto*//*Label 551*/ 14434, // Rule ID 13931 //
    6963             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
    6964             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK32RegClassID,
    6965             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR32RegClassID,
    6966             :       // (bitconvert:{ *:[v32i1] } GR32:{ *:[i32] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v32i1] } GR32:{ *:[i32] }:$src, VK32:{ *:[i32] })
    6967             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6968             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK32*/31,
    6969             :       // GIR_Coverage, 13931,
    6970             :       GIR_Done,
    6971             :     // Label 551: @14434
    6972             :     GIM_Reject,
    6973             :     // Label 454: @14435
    6974             :     GIM_Try, /*On fail goto*//*Label 552*/ 14467, // Rule ID 16235 //
    6975             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    6976             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6977             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6978             :       // (bitconvert:{ *:[v32i8] } VR256:{ *:[v4i64] }:$src)  =>  VR256:{ *:[v32i8] }:$src
    6979             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6980             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6981             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6982             :       GIR_EraseFromParent, /*InsnID*/0,
    6983             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6984             :       // GIR_Coverage, 16235,
    6985             :       GIR_Done,
    6986             :     // Label 552: @14467
    6987             :     GIM_Try, /*On fail goto*//*Label 553*/ 14499, // Rule ID 16236 //
    6988             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    6989             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    6990             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    6991             :       // (bitconvert:{ *:[v32i8] } VR256:{ *:[v8i32] }:$src)  =>  VR256:{ *:[v32i8] }:$src
    6992             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    6993             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    6994             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    6995             :       GIR_EraseFromParent, /*InsnID*/0,
    6996             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    6997             :       // GIR_Coverage, 16236,
    6998             :       GIR_Done,
    6999             :     // Label 553: @14499
    7000             :     GIM_Try, /*On fail goto*//*Label 554*/ 14531, // Rule ID 16237 //
    7001             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s16,
    7002             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    7003             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    7004             :       // (bitconvert:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src)  =>  VR256:{ *:[v32i8] }:$src
    7005             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7006             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7007             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7008             :       GIR_EraseFromParent, /*InsnID*/0,
    7009             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    7010             :       // GIR_Coverage, 16237,
    7011             :       GIR_Done,
    7012             :     // Label 554: @14531
    7013             :     GIM_Try, /*On fail goto*//*Label 555*/ 14563, // Rule ID 16238 //
    7014             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s64,
    7015             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    7016             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    7017             :       // (bitconvert:{ *:[v32i8] } VR256:{ *:[v4f64] }:$src)  =>  VR256:{ *:[v32i8] }:$src
    7018             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7019             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7020             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7021             :       GIR_EraseFromParent, /*InsnID*/0,
    7022             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    7023             :       // GIR_Coverage, 16238,
    7024             :       GIR_Done,
    7025             :     // Label 555: @14563
    7026             :     GIM_Try, /*On fail goto*//*Label 556*/ 14595, // Rule ID 16239 //
    7027             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s32,
    7028             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    7029             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR256RegClassID,
    7030             :       // (bitconvert:{ *:[v32i8] } VR256:{ *:[v8f32] }:$src)  =>  VR256:{ *:[v32i8] }:$src
    7031             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7032             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7033             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7034             :       GIR_EraseFromParent, /*InsnID*/0,
    7035             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR256*/80,
    7036             :       // GIR_Coverage, 16239,
    7037             :       GIR_Done,
    7038             :     // Label 556: @14595
    7039             :     GIM_Reject,
    7040             :     // Label 455: @14596
    7041             :     GIM_Try, /*On fail goto*//*Label 557*/ 14628, // Rule ID 16270 //
    7042             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    7043             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7044             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7045             :       // (bitconvert:{ *:[v32i16] } VR512:{ *:[v8i64] }:$src)  =>  VR512:{ *:[v32i16] }:$src
    7046             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7047             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7048             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7049             :       GIR_EraseFromParent, /*InsnID*/0,
    7050             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7051             :       // GIR_Coverage, 16270,
    7052             :       GIR_Done,
    7053             :     // Label 557: @14628
    7054             :     GIM_Try, /*On fail goto*//*Label 558*/ 14660, // Rule ID 16271 //
    7055             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    7056             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7057             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7058             :       // (bitconvert:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src)  =>  VR512:{ *:[v32i16] }:$src
    7059             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7060             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7061             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7062             :       GIR_EraseFromParent, /*InsnID*/0,
    7063             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7064             :       // GIR_Coverage, 16271,
    7065             :       GIR_Done,
    7066             :     // Label 558: @14660
    7067             :     GIM_Try, /*On fail goto*//*Label 559*/ 14692, // Rule ID 16272 //
    7068             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v64s8,
    7069             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7070             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7071             :       // (bitconvert:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src)  =>  VR512:{ *:[v32i16] }:$src
    7072             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7073             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7074             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7075             :       GIR_EraseFromParent, /*InsnID*/0,
    7076             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7077             :       // GIR_Coverage, 16272,
    7078             :       GIR_Done,
    7079             :     // Label 559: @14692
    7080             :     GIM_Try, /*On fail goto*//*Label 560*/ 14724, // Rule ID 16273 //
    7081             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    7082             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7083             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7084             :       // (bitconvert:{ *:[v32i16] } VR512:{ *:[v8f64] }:$src)  =>  VR512:{ *:[v32i16] }:$src
    7085             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7086             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7087             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7088             :       GIR_EraseFromParent, /*InsnID*/0,
    7089             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7090             :       // GIR_Coverage, 16273,
    7091             :       GIR_Done,
    7092             :     // Label 560: @14724
    7093             :     GIM_Try, /*On fail goto*//*Label 561*/ 14756, // Rule ID 16274 //
    7094             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    7095             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7096             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7097             :       // (bitconvert:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src)  =>  VR512:{ *:[v32i16] }:$src
    7098             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7099             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7100             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7101             :       GIR_EraseFromParent, /*InsnID*/0,
    7102             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7103             :       // GIR_Coverage, 16274,
    7104             :       GIR_Done,
    7105             :     // Label 561: @14756
    7106             :     GIM_Reject,
    7107             :     // Label 456: @14757
    7108             :     GIM_Try, /*On fail goto*//*Label 562*/ 14780, // Rule ID 13933 //
    7109             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
    7110             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VK64RegClassID,
    7111             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::GR64RegClassID,
    7112             :       // (bitconvert:{ *:[v64i1] } GR64:{ *:[i64] }:$src)  =>  (COPY_TO_REGCLASS:{ *:[v64i1] } GR64:{ *:[i64] }:$src, VK64:{ *:[i32] })
    7113             :       GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7114             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VK64*/55,
    7115             :       // GIR_Coverage, 13933,
    7116             :       GIR_Done,
    7117             :     // Label 562: @14780
    7118             :     GIM_Reject,
    7119             :     // Label 457: @14781
    7120             :     GIM_Try, /*On fail goto*//*Label 563*/ 14813, // Rule ID 16275 //
    7121             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    7122             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7123             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7124             :       // (bitconvert:{ *:[v64i8] } VR512:{ *:[v8i64] }:$src)  =>  VR512:{ *:[v64i8] }:$src
    7125             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7126             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7127             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7128             :       GIR_EraseFromParent, /*InsnID*/0,
    7129             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7130             :       // GIR_Coverage, 16275,
    7131             :       GIR_Done,
    7132             :     // Label 563: @14813
    7133             :     GIM_Try, /*On fail goto*//*Label 564*/ 14845, // Rule ID 16276 //
    7134             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    7135             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7136             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7137             :       // (bitconvert:{ *:[v64i8] } VR512:{ *:[v16i32] }:$src)  =>  VR512:{ *:[v64i8] }:$src
    7138             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7139             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7140             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7141             :       GIR_EraseFromParent, /*InsnID*/0,
    7142             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7143             :       // GIR_Coverage, 16276,
    7144             :       GIR_Done,
    7145             :     // Label 564: @14845
    7146             :     GIM_Try, /*On fail goto*//*Label 565*/ 14877, // Rule ID 16277 //
    7147             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v32s16,
    7148             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7149             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7150             :       // (bitconvert:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src)  =>  VR512:{ *:[v64i8] }:$src
    7151             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7152             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7153             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7154             :       GIR_EraseFromParent, /*InsnID*/0,
    7155             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7156             :       // GIR_Coverage, 16277,
    7157             :       GIR_Done,
    7158             :     // Label 565: @14877
    7159             :     GIM_Try, /*On fail goto*//*Label 566*/ 14909, // Rule ID 16278 //
    7160             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s64,
    7161             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7162             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7163             :       // (bitconvert:{ *:[v64i8] } VR512:{ *:[v8f64] }:$src)  =>  VR512:{ *:[v64i8] }:$src
    7164             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7165             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7166             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7167             :       GIR_EraseFromParent, /*InsnID*/0,
    7168             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7169             :       // GIR_Coverage, 16278,
    7170             :       GIR_Done,
    7171             :     // Label 566: @14909
    7172             :     GIM_Try, /*On fail goto*//*Label 567*/ 14941, // Rule ID 16279 //
    7173             :       GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s32,
    7174             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    7175             :       GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/X86::VR512RegClassID,
    7176             :       // (bitconvert:{ *:[v64i8] } VR512:{ *:[v16f32] }:$src)  =>  VR512:{ *:[v64i8] }:$src
    7177             :       GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
    7178             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7179             :       GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
    7180             :       GIR_EraseFromParent, /*InsnID*/0,
    7181             :       GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, /*RC VR512*/83,
    7182             :       // GIR_Coverage, 16279,
    7183             :       GIR_Done,
    7184             :     // Label 567: @14941
    7185             :     GIM_Reject,
    7186             :     // Label 458: @14942
    7187             :     GIM_Reject,
    7188             :     // Label 7: @14943
    7189             :     GIM_Try, /*On fail goto*//*Label 568*/ 17005,
    7190             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
    7191             :       GIM_Try, /*On fail goto*//*Label 569*/ 14988, // Rule ID 1133 //
    7192             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7193             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphsubwd,
    7194             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7195             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7196             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7197             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7198             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6621:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src)  =>  (VPHSUBWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
    7199             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHSUBWDrr,
    7200             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7201             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7202             :         GIR_EraseFromParent, /*InsnID*/0,
    7203             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7204             :         // GIR_Coverage, 1133,
    7205             :         GIR_Done,
    7206             :       // Label 569: @14988
    7207             :       GIM_Try, /*On fail goto*//*Label 570*/ 15028, // Rule ID 1135 //
    7208             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7209             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphsubdq,
    7210             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7211             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7212             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7213             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7214             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6620:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src)  =>  (VPHSUBDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
    7215             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHSUBDQrr,
    7216             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7217             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7218             :         GIR_EraseFromParent, /*InsnID*/0,
    7219             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7220             :         // GIR_Coverage, 1135,
    7221             :         GIR_Done,
    7222             :       // Label 570: @15028
    7223             :       GIM_Try, /*On fail goto*//*Label 571*/ 15068, // Rule ID 1137 //
    7224             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7225             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphsubbw,
    7226             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7227             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7228             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7229             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7230             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6619:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src)  =>  (VPHSUBBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
    7231             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHSUBBWrr,
    7232             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7233             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7234             :         GIR_EraseFromParent, /*InsnID*/0,
    7235             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7236             :         // GIR_Coverage, 1137,
    7237             :         GIR_Done,
    7238             :       // Label 571: @15068
    7239             :       GIM_Try, /*On fail goto*//*Label 572*/ 15108, // Rule ID 1139 //
    7240             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7241             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddwq,
    7242             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7243             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7244             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7245             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7246             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6618:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src)  =>  (VPHADDWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
    7247             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDWQrr,
    7248             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7249             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7250             :         GIR_EraseFromParent, /*InsnID*/0,
    7251             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7252             :         // GIR_Coverage, 1139,
    7253             :         GIR_Done,
    7254             :       // Label 572: @15108
    7255             :       GIM_Try, /*On fail goto*//*Label 573*/ 15148, // Rule ID 1141 //
    7256             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7257             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddwd,
    7258             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7259             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7260             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7261             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7262             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6617:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src)  =>  (VPHADDWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
    7263             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDWDrr,
    7264             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7265             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7266             :         GIR_EraseFromParent, /*InsnID*/0,
    7267             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7268             :         // GIR_Coverage, 1141,
    7269             :         GIR_Done,
    7270             :       // Label 573: @15148
    7271             :       GIM_Try, /*On fail goto*//*Label 574*/ 15188, // Rule ID 1143 //
    7272             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7273             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphadduwq,
    7274             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7275             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7276             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7277             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7278             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6616:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src)  =>  (VPHADDUWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
    7279             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDUWQrr,
    7280             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7281             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7282             :         GIR_EraseFromParent, /*InsnID*/0,
    7283             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7284             :         // GIR_Coverage, 1143,
    7285             :         GIR_Done,
    7286             :       // Label 574: @15188
    7287             :       GIM_Try, /*On fail goto*//*Label 575*/ 15228, // Rule ID 1145 //
    7288             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7289             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphadduwd,
    7290             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7291             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    7292             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7293             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7294             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6615:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src)  =>  (VPHADDUWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
    7295             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDUWDrr,
    7296             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7297             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7298             :         GIR_EraseFromParent, /*InsnID*/0,
    7299             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7300             :         // GIR_Coverage, 1145,
    7301             :         GIR_Done,
    7302             :       // Label 575: @15228
    7303             :       GIM_Try, /*On fail goto*//*Label 576*/ 15268, // Rule ID 1147 //
    7304             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7305             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddudq,
    7306             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7307             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7308             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7309             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7310             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6614:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src)  =>  (VPHADDUDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
    7311             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDUDQrr,
    7312             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7313             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7314             :         GIR_EraseFromParent, /*InsnID*/0,
    7315             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7316             :         // GIR_Coverage, 1147,
    7317             :         GIR_Done,
    7318             :       // Label 576: @15268
    7319             :       GIM_Try, /*On fail goto*//*Label 577*/ 15308, // Rule ID 1149 //
    7320             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7321             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddubw,
    7322             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7323             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7324             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7325             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7326             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6613:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src)  =>  (VPHADDUBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
    7327             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDUBWrr,
    7328             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7329             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7330             :         GIR_EraseFromParent, /*InsnID*/0,
    7331             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7332             :         // GIR_Coverage, 1149,
    7333             :         GIR_Done,
    7334             :       // Label 577: @15308
    7335             :       GIM_Try, /*On fail goto*//*Label 578*/ 15348, // Rule ID 1151 //
    7336             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7337             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddubq,
    7338             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7339             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7340             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7341             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7342             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6612:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src)  =>  (VPHADDUBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
    7343             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDUBQrr,
    7344             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7345             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7346             :         GIR_EraseFromParent, /*InsnID*/0,
    7347             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7348             :         // GIR_Coverage, 1151,
    7349             :         GIR_Done,
    7350             :       // Label 578: @15348
    7351             :       GIM_Try, /*On fail goto*//*Label 579*/ 15388, // Rule ID 1153 //
    7352             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7353             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddubd,
    7354             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7355             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7356             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7357             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7358             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6611:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src)  =>  (VPHADDUBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
    7359             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDUBDrr,
    7360             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7361             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7362             :         GIR_EraseFromParent, /*InsnID*/0,
    7363             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7364             :         // GIR_Coverage, 1153,
    7365             :         GIR_Done,
    7366             :       // Label 579: @15388
    7367             :       GIM_Try, /*On fail goto*//*Label 580*/ 15428, // Rule ID 1155 //
    7368             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7369             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphadddq,
    7370             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7371             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7372             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7373             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7374             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6610:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src)  =>  (VPHADDDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
    7375             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDDQrr,
    7376             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7377             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7378             :         GIR_EraseFromParent, /*InsnID*/0,
    7379             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7380             :         // GIR_Coverage, 1155,
    7381             :         GIR_Done,
    7382             :       // Label 580: @15428
    7383             :       GIM_Try, /*On fail goto*//*Label 581*/ 15468, // Rule ID 1157 //
    7384             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7385             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddbw,
    7386             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    7387             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7388             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7389             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7390             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6609:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src)  =>  (VPHADDBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
    7391             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDBWrr,
    7392             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7393             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7394             :         GIR_EraseFromParent, /*InsnID*/0,
    7395             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7396             :         // GIR_Coverage, 1157,
    7397             :         GIR_Done,
    7398             :       // Label 581: @15468
    7399             :       GIM_Try, /*On fail goto*//*Label 582*/ 15508, // Rule ID 1159 //
    7400             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7401             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddbq,
    7402             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7403             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7404             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7405             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7406             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6608:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src)  =>  (VPHADDBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
    7407             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDBQrr,
    7408             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7409             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7410             :         GIR_EraseFromParent, /*InsnID*/0,
    7411             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7412             :         // GIR_Coverage, 1159,
    7413             :         GIR_Done,
    7414             :       // Label 582: @15508
    7415             :       GIM_Try, /*On fail goto*//*Label 583*/ 15548, // Rule ID 1161 //
    7416             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7417             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vphaddbd,
    7418             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7419             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    7420             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7421             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7422             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6607:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src)  =>  (VPHADDBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
    7423             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDBDrr,
    7424             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7425             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7426             :         GIR_EraseFromParent, /*InsnID*/0,
    7427             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7428             :         // GIR_Coverage, 1161,
    7429             :         GIR_Done,
    7430             :       // Label 583: @15548
    7431             :       GIM_Try, /*On fail goto*//*Label 584*/ 15588, // Rule ID 1163 //
    7432             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7433             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vfrcz_ss,
    7434             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7435             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7436             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7437             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7438             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6594:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (VFRCZSSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
    7439             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VFRCZSSrr,
    7440             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7441             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7442             :         GIR_EraseFromParent, /*InsnID*/0,
    7443             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7444             :         // GIR_Coverage, 1163,
    7445             :         GIR_Done,
    7446             :       // Label 584: @15588
    7447             :       GIM_Try, /*On fail goto*//*Label 585*/ 15628, // Rule ID 1165 //
    7448             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7449             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vfrcz_ps,
    7450             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7451             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7452             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7453             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7454             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6591:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (VFRCZPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
    7455             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VFRCZPSrr,
    7456             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7457             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7458             :         GIR_EraseFromParent, /*InsnID*/0,
    7459             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7460             :         // GIR_Coverage, 1165,
    7461             :         GIR_Done,
    7462             :       // Label 585: @15628
    7463             :       GIM_Try, /*On fail goto*//*Label 586*/ 15668, // Rule ID 1167 //
    7464             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7465             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vfrcz_ps_256,
    7466             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s32,
    7467             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s32,
    7468             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    7469             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    7470             :         // (intrinsic_wo_chain:{ *:[v8f32] } 6592:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src)  =>  (VFRCZPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
    7471             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VFRCZPSYrr,
    7472             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7473             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7474             :         GIR_EraseFromParent, /*InsnID*/0,
    7475             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7476             :         // GIR_Coverage, 1167,
    7477             :         GIR_Done,
    7478             :       // Label 586: @15668
    7479             :       GIM_Try, /*On fail goto*//*Label 587*/ 15708, // Rule ID 1169 //
    7480             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7481             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vfrcz_sd,
    7482             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7483             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7484             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7486             :         // (intrinsic_wo_chain:{ *:[v2f64] } 6593:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (VFRCZSDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
    7487             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VFRCZSDrr,
    7488             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7489             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7490             :         GIR_EraseFromParent, /*InsnID*/0,
    7491             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7492             :         // GIR_Coverage, 1169,
    7493             :         GIR_Done,
    7494             :       // Label 587: @15708
    7495             :       GIM_Try, /*On fail goto*//*Label 588*/ 15748, // Rule ID 1171 //
    7496             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7497             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vfrcz_pd,
    7498             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7499             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7500             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7501             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7502             :         // (intrinsic_wo_chain:{ *:[v2f64] } 6589:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (VFRCZPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
    7503             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VFRCZPDrr,
    7504             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7505             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7506             :         GIR_EraseFromParent, /*InsnID*/0,
    7507             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7508             :         // GIR_Coverage, 1171,
    7509             :         GIR_Done,
    7510             :       // Label 588: @15748
    7511             :       GIM_Try, /*On fail goto*//*Label 589*/ 15788, // Rule ID 1173 //
    7512             :         GIM_CheckFeatures, GIFBS_HasXOP,
    7513             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_xop_vfrcz_pd_256,
    7514             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    7515             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    7516             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    7517             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    7518             :         // (intrinsic_wo_chain:{ *:[v4f64] } 6590:{ *:[iPTR] }, VR256:{ *:[v4f64] }:$src)  =>  (VFRCZPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src)
    7519             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VFRCZPDYrr,
    7520             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7521             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7522             :         GIR_EraseFromParent, /*InsnID*/0,
    7523             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7524             :         // GIR_Coverage, 1173,
    7525             :         GIR_Done,
    7526             :       // Label 589: @15788
    7527             :       GIM_Try, /*On fail goto*//*Label 590*/ 15828, // Rule ID 1367 //
    7528             :         GIM_CheckFeatures, GIFBS_UseAVX,
    7529             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvtsd2si,
    7530             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7531             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7532             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7533             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7534             :         // (intrinsic_wo_chain:{ *:[i32] } 6426:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (VCVTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
    7535             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSD2SIrr_Int,
    7536             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7537             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7538             :         GIR_EraseFromParent, /*InsnID*/0,
    7539             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7540             :         // GIR_Coverage, 1367,
    7541             :         GIR_Done,
    7542             :       // Label 590: @15828
    7543             :       GIM_Try, /*On fail goto*//*Label 591*/ 15868, // Rule ID 1369 //
    7544             :         GIM_CheckFeatures, GIFBS_UseAVX,
    7545             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvtsd2si64,
    7546             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7547             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7548             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7549             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7550             :         // (intrinsic_wo_chain:{ *:[i64] } 6427:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (VCVTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
    7551             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSD2SI64rr_Int,
    7552             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7553             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7554             :         GIR_EraseFromParent, /*InsnID*/0,
    7555             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7556             :         // GIR_Coverage, 1369,
    7557             :         GIR_Done,
    7558             :       // Label 591: @15868
    7559             :       GIM_Try, /*On fail goto*//*Label 592*/ 15908, // Rule ID 1371 //
    7560             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    7561             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvtsd2si,
    7562             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7563             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7564             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7565             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7566             :         // (intrinsic_wo_chain:{ *:[i32] } 6426:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (CVTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
    7567             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTSD2SIrr_Int,
    7568             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7569             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7570             :         GIR_EraseFromParent, /*InsnID*/0,
    7571             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7572             :         // GIR_Coverage, 1371,
    7573             :         GIR_Done,
    7574             :       // Label 592: @15908
    7575             :       GIM_Try, /*On fail goto*//*Label 593*/ 15948, // Rule ID 1373 //
    7576             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    7577             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvtsd2si64,
    7578             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7579             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7580             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7581             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7582             :         // (intrinsic_wo_chain:{ *:[i64] } 6427:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (CVTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
    7583             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTSD2SI64rr_Int,
    7584             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7585             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7586             :         GIR_EraseFromParent, /*InsnID*/0,
    7587             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7588             :         // GIR_Coverage, 1373,
    7589             :         GIR_Done,
    7590             :       // Label 593: @15948
    7591             :       GIM_Try, /*On fail goto*//*Label 594*/ 15988, // Rule ID 1375 //
    7592             :         GIM_CheckFeatures, GIFBS_UseAVX,
    7593             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvttss2si,
    7594             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7595             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7596             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7597             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7598             :         // (intrinsic_wo_chain:{ *:[i32] } 6393:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (VCVTTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
    7599             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTTSS2SIrr_Int,
    7600             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7601             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7602             :         GIR_EraseFromParent, /*InsnID*/0,
    7603             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7604             :         // GIR_Coverage, 1375,
    7605             :         GIR_Done,
    7606             :       // Label 594: @15988
    7607             :       GIM_Try, /*On fail goto*//*Label 595*/ 16028, // Rule ID 1377 //
    7608             :         GIM_CheckFeatures, GIFBS_UseAVX,
    7609             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvttss2si64,
    7610             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7611             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7612             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7613             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7614             :         // (intrinsic_wo_chain:{ *:[i64] } 6394:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (VCVTTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
    7615             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTTSS2SI64rr_Int,
    7616             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7617             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7618             :         GIR_EraseFromParent, /*InsnID*/0,
    7619             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7620             :         // GIR_Coverage, 1377,
    7621             :         GIR_Done,
    7622             :       // Label 595: @16028
    7623             :       GIM_Try, /*On fail goto*//*Label 596*/ 16068, // Rule ID 1379 //
    7624             :         GIM_CheckFeatures, GIFBS_UseAVX,
    7625             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvttsd2si,
    7626             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7627             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7628             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7629             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7630             :         // (intrinsic_wo_chain:{ *:[i32] } 6431:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (VCVTTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
    7631             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTTSD2SIrr_Int,
    7632             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7633             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7634             :         GIR_EraseFromParent, /*InsnID*/0,
    7635             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7636             :         // GIR_Coverage, 1379,
    7637             :         GIR_Done,
    7638             :       // Label 596: @16068
    7639             :       GIM_Try, /*On fail goto*//*Label 597*/ 16108, // Rule ID 1381 //
    7640             :         GIM_CheckFeatures, GIFBS_UseAVX,
    7641             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvttsd2si64,
    7642             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7643             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7644             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7645             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7646             :         // (intrinsic_wo_chain:{ *:[i64] } 6432:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (VCVTTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
    7647             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTTSD2SI64rr_Int,
    7648             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7649             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7650             :         GIR_EraseFromParent, /*InsnID*/0,
    7651             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7652             :         // GIR_Coverage, 1381,
    7653             :         GIR_Done,
    7654             :       // Label 597: @16108
    7655             :       GIM_Try, /*On fail goto*//*Label 598*/ 16148, // Rule ID 1383 //
    7656             :         GIM_CheckFeatures, GIFBS_UseSSE1,
    7657             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvttss2si,
    7658             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7659             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7660             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7661             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7662             :         // (intrinsic_wo_chain:{ *:[i32] } 6393:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (CVTTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
    7663             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTTSS2SIrr_Int,
    7664             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7665             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7666             :         GIR_EraseFromParent, /*InsnID*/0,
    7667             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7668             :         // GIR_Coverage, 1383,
    7669             :         GIR_Done,
    7670             :       // Label 598: @16148
    7671             :       GIM_Try, /*On fail goto*//*Label 599*/ 16188, // Rule ID 1385 //
    7672             :         GIM_CheckFeatures, GIFBS_UseSSE1,
    7673             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvttss2si64,
    7674             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7675             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7676             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7677             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7678             :         // (intrinsic_wo_chain:{ *:[i64] } 6394:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (CVTTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
    7679             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTTSS2SI64rr_Int,
    7680             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7681             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7682             :         GIR_EraseFromParent, /*InsnID*/0,
    7683             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7684             :         // GIR_Coverage, 1385,
    7685             :         GIR_Done,
    7686             :       // Label 599: @16188
    7687             :       GIM_Try, /*On fail goto*//*Label 600*/ 16228, // Rule ID 1387 //
    7688             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    7689             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvttsd2si,
    7690             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7691             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7692             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7693             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7694             :         // (intrinsic_wo_chain:{ *:[i32] } 6431:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (CVTTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
    7695             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTTSD2SIrr_Int,
    7696             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7697             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7698             :         GIR_EraseFromParent, /*InsnID*/0,
    7699             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7700             :         // GIR_Coverage, 1387,
    7701             :         GIR_Done,
    7702             :       // Label 600: @16228
    7703             :       GIM_Try, /*On fail goto*//*Label 601*/ 16268, // Rule ID 1389 //
    7704             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    7705             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvttsd2si64,
    7706             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7707             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7708             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7709             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7710             :         // (intrinsic_wo_chain:{ *:[i64] } 6432:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src)  =>  (CVTTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
    7711             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTTSD2SI64rr_Int,
    7712             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7713             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7714             :         GIR_EraseFromParent, /*InsnID*/0,
    7715             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7716             :         // GIR_Coverage, 1389,
    7717             :         GIR_Done,
    7718             :       // Label 601: @16268
    7719             :       GIM_Try, /*On fail goto*//*Label 602*/ 16308, // Rule ID 1391 //
    7720             :         GIM_CheckFeatures, GIFBS_UseAVX,
    7721             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvtss2si,
    7722             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7723             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7724             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7725             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7726             :         // (intrinsic_wo_chain:{ *:[i32] } 6389:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (VCVTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
    7727             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSS2SIrr_Int,
    7728             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7729             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7730             :         GIR_EraseFromParent, /*InsnID*/0,
    7731             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7732             :         // GIR_Coverage, 1391,
    7733             :         GIR_Done,
    7734             :       // Label 602: @16308
    7735             :       GIM_Try, /*On fail goto*//*Label 603*/ 16348, // Rule ID 1393 //
    7736             :         GIM_CheckFeatures, GIFBS_UseAVX,
    7737             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvtss2si64,
    7738             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7739             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7740             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7741             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7742             :         // (intrinsic_wo_chain:{ *:[i64] } 6390:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (VCVTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
    7743             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSS2SI64rr_Int,
    7744             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7745             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7746             :         GIR_EraseFromParent, /*InsnID*/0,
    7747             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7748             :         // GIR_Coverage, 1393,
    7749             :         GIR_Done,
    7750             :       // Label 603: @16348
    7751             :       GIM_Try, /*On fail goto*//*Label 604*/ 16388, // Rule ID 1395 //
    7752             :         GIM_CheckFeatures, GIFBS_UseSSE1,
    7753             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvtss2si,
    7754             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7755             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7756             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7757             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7758             :         // (intrinsic_wo_chain:{ *:[i32] } 6389:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (CVTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
    7759             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTSS2SIrr_Int,
    7760             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7761             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7762             :         GIR_EraseFromParent, /*InsnID*/0,
    7763             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7764             :         // GIR_Coverage, 1395,
    7765             :         GIR_Done,
    7766             :       // Label 604: @16388
    7767             :       GIM_Try, /*On fail goto*//*Label 605*/ 16428, // Rule ID 1397 //
    7768             :         GIM_CheckFeatures, GIFBS_UseSSE1,
    7769             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvtss2si64,
    7770             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7771             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7772             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7773             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7774             :         // (intrinsic_wo_chain:{ *:[i64] } 6390:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (CVTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
    7775             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTSS2SI64rr_Int,
    7776             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7777             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7778             :         GIR_EraseFromParent, /*InsnID*/0,
    7779             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7780             :         // GIR_Coverage, 1397,
    7781             :         GIR_Done,
    7782             :       // Label 605: @16428
    7783             :       GIM_Try, /*On fail goto*//*Label 606*/ 16468, // Rule ID 2631 //
    7784             :         GIM_CheckFeatures, GIFBS_HasAES_HasAVX,
    7785             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesimc,
    7786             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7787             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7788             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7789             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7790             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5425:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1)  =>  (VAESIMCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1)
    7791             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESIMCrr,
    7792             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7793             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    7794             :         GIR_EraseFromParent, /*InsnID*/0,
    7795             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7796             :         // GIR_Coverage, 2631,
    7797             :         GIR_Done,
    7798             :       // Label 606: @16468
    7799             :       GIM_Try, /*On fail goto*//*Label 607*/ 16508, // Rule ID 2633 //
    7800             :         GIM_CheckFeatures, GIFBS_HasAES_NoAVX,
    7801             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesimc,
    7802             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    7803             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7804             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7805             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7806             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5425:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1)  =>  (AESIMCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1)
    7807             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AESIMCrr,
    7808             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7809             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    7810             :         GIR_EraseFromParent, /*InsnID*/0,
    7811             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7812             :         // GIR_Coverage, 2633,
    7813             :         GIR_Done,
    7814             :       // Label 607: @16508
    7815             :       GIM_Try, /*On fail goto*//*Label 608*/ 16552, // Rule ID 12790 //
    7816             :         GIM_CheckFeatures, GIFBS_UseSSE1,
    7817             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_rsqrt_ss,
    7818             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7819             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7820             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7821             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7822             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6405:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (RSQRTSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
    7823             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::RSQRTSSr_Int,
    7824             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7825             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7826             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7827             :         GIR_EraseFromParent, /*InsnID*/0,
    7828             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7829             :         // GIR_Coverage, 12790,
    7830             :         GIR_Done,
    7831             :       // Label 608: @16552
    7832             :       GIM_Try, /*On fail goto*//*Label 609*/ 16596, // Rule ID 12792 //
    7833             :         GIM_CheckFeatures, GIFBS_HasAVX,
    7834             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_rsqrt_ss,
    7835             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7836             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7837             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7838             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7839             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6405:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (VRSQRTSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
    7840             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VRSQRTSSr_Int,
    7841             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7842             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7843             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7844             :         GIR_EraseFromParent, /*InsnID*/0,
    7845             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7846             :         // GIR_Coverage, 12792,
    7847             :         GIR_Done,
    7848             :       // Label 609: @16596
    7849             :       GIM_Try, /*On fail goto*//*Label 610*/ 16640, // Rule ID 12802 //
    7850             :         GIM_CheckFeatures, GIFBS_UseSSE1,
    7851             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_rcp_ss,
    7852             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7853             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7854             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7855             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7856             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6403:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (RCPSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
    7857             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::RCPSSr_Int,
    7858             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7859             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7860             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7861             :         GIR_EraseFromParent, /*InsnID*/0,
    7862             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7863             :         // GIR_Coverage, 12802,
    7864             :         GIR_Done,
    7865             :       // Label 610: @16640
    7866             :       GIM_Try, /*On fail goto*//*Label 611*/ 16684, // Rule ID 12804 //
    7867             :         GIM_CheckFeatures, GIFBS_HasAVX,
    7868             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_rcp_ss,
    7869             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    7870             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7871             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    7872             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    7873             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6403:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src)  =>  (VRCPSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
    7874             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VRCPSSr_Int,
    7875             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7876             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7877             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7878             :         GIR_EraseFromParent, /*InsnID*/0,
    7879             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7880             :         // GIR_Coverage, 12804,
    7881             :         GIR_Done,
    7882             :       // Label 611: @16684
    7883             :       GIM_Try, /*On fail goto*//*Label 612*/ 16724, // Rule ID 15009 //
    7884             :         GIM_CheckFeatures, GIFBS_HasAVX512,
    7885             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvtss2si,
    7886             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7887             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7888             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7889             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    7890             :         // (intrinsic_wo_chain:{ *:[i32] } 6389:{ *:[iPTR] }, VR128X:{ *:[v4f32] }:$src)  =>  (VCVTSS2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
    7891             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSS2SIZrr_Int,
    7892             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7893             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7894             :         GIR_EraseFromParent, /*InsnID*/0,
    7895             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7896             :         // GIR_Coverage, 15009,
    7897             :         GIR_Done,
    7898             :       // Label 612: @16724
    7899             :       GIM_Try, /*On fail goto*//*Label 613*/ 16764, // Rule ID 15011 //
    7900             :         GIM_CheckFeatures, GIFBS_HasAVX512,
    7901             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvtss2si64,
    7902             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7903             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7904             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7905             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    7906             :         // (intrinsic_wo_chain:{ *:[i64] } 6390:{ *:[iPTR] }, VR128X:{ *:[v4f32] }:$src)  =>  (VCVTSS2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
    7907             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSS2SI64Zrr_Int,
    7908             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7909             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7910             :         GIR_EraseFromParent, /*InsnID*/0,
    7911             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7912             :         // GIR_Coverage, 15011,
    7913             :         GIR_Done,
    7914             :       // Label 613: @16764
    7915             :       GIM_Try, /*On fail goto*//*Label 614*/ 16804, // Rule ID 15013 //
    7916             :         GIM_CheckFeatures, GIFBS_HasAVX512,
    7917             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvtsd2si,
    7918             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7919             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7920             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7921             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    7922             :         // (intrinsic_wo_chain:{ *:[i32] } 6426:{ *:[iPTR] }, VR128X:{ *:[v2f64] }:$src)  =>  (VCVTSD2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
    7923             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSD2SIZrr_Int,
    7924             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7925             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7926             :         GIR_EraseFromParent, /*InsnID*/0,
    7927             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7928             :         // GIR_Coverage, 15013,
    7929             :         GIR_Done,
    7930             :       // Label 614: @16804
    7931             :       GIM_Try, /*On fail goto*//*Label 615*/ 16844, // Rule ID 15015 //
    7932             :         GIM_CheckFeatures, GIFBS_HasAVX512,
    7933             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvtsd2si64,
    7934             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7935             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7936             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7937             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    7938             :         // (intrinsic_wo_chain:{ *:[i64] } 6427:{ *:[iPTR] }, VR128X:{ *:[v2f64] }:$src)  =>  (VCVTSD2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
    7939             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSD2SI64Zrr_Int,
    7940             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7941             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7942             :         GIR_EraseFromParent, /*InsnID*/0,
    7943             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7944             :         // GIR_Coverage, 15015,
    7945             :         GIR_Done,
    7946             :       // Label 615: @16844
    7947             :       GIM_Try, /*On fail goto*//*Label 616*/ 16884, // Rule ID 15033 //
    7948             :         GIM_CheckFeatures, GIFBS_HasAVX512,
    7949             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvttss2si,
    7950             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7951             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7952             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7953             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    7954             :         // (intrinsic_wo_chain:{ *:[i32] } 6393:{ *:[iPTR] }, VR128X:{ *:[v4f32] }:$src)  =>  (VCVTTSS2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
    7955             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTTSS2SIZrr_Int,
    7956             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7957             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7958             :         GIR_EraseFromParent, /*InsnID*/0,
    7959             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7960             :         // GIR_Coverage, 15033,
    7961             :         GIR_Done,
    7962             :       // Label 616: @16884
    7963             :       GIM_Try, /*On fail goto*//*Label 617*/ 16924, // Rule ID 15035 //
    7964             :         GIM_CheckFeatures, GIFBS_HasAVX512,
    7965             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cvttss2si64,
    7966             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7967             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    7968             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    7969             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    7970             :         // (intrinsic_wo_chain:{ *:[i64] } 6394:{ *:[iPTR] }, VR128X:{ *:[v4f32] }:$src)  =>  (VCVTTSS2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
    7971             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTTSS2SI64Zrr_Int,
    7972             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7973             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7974             :         GIR_EraseFromParent, /*InsnID*/0,
    7975             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7976             :         // GIR_Coverage, 15035,
    7977             :         GIR_Done,
    7978             :       // Label 617: @16924
    7979             :       GIM_Try, /*On fail goto*//*Label 618*/ 16964, // Rule ID 15037 //
    7980             :         GIM_CheckFeatures, GIFBS_HasAVX512,
    7981             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvttsd2si,
    7982             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    7983             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    7984             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    7985             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    7986             :         // (intrinsic_wo_chain:{ *:[i32] } 6431:{ *:[iPTR] }, VR128X:{ *:[v2f64] }:$src)  =>  (VCVTTSD2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
    7987             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTTSD2SIZrr_Int,
    7988             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    7989             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    7990             :         GIR_EraseFromParent, /*InsnID*/0,
    7991             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    7992             :         // GIR_Coverage, 15037,
    7993             :         GIR_Done,
    7994             :       // Label 618: @16964
    7995             :       GIM_Try, /*On fail goto*//*Label 619*/ 17004, // Rule ID 15039 //
    7996             :         GIM_CheckFeatures, GIFBS_HasAVX512,
    7997             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvttsd2si64,
    7998             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    7999             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8000             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    8001             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    8002             :         // (intrinsic_wo_chain:{ *:[i64] } 6432:{ *:[iPTR] }, VR128X:{ *:[v2f64] }:$src)  =>  (VCVTTSD2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
    8003             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTTSD2SI64Zrr_Int,
    8004             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8005             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    8006             :         GIR_EraseFromParent, /*InsnID*/0,
    8007             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8008             :         // GIR_Coverage, 15039,
    8009             :         GIR_Done,
    8010             :       // Label 619: @17004
    8011             :       GIM_Reject,
    8012             :     // Label 568: @17005
    8013             :     GIM_Try, /*On fail goto*//*Label 620*/ 20035,
    8014             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
    8015             :       GIM_Try, /*On fail goto*//*Label 621*/ 17066, // Rule ID 2635 //
    8016             :         GIM_CheckFeatures, GIFBS_HasAES_HasAVX,
    8017             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aeskeygenassist,
    8018             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8019             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8020             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s8,
    8021             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8022             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8023             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    8024             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    8025             :         // MIs[1] Operand 1
    8026             :         // No operand predicates
    8027             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    8028             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5426:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)  =>  (VAESKEYGENASSIST128rr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
    8029             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESKEYGENASSIST128rr,
    8030             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8031             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8032             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    8033             :         GIR_EraseFromParent, /*InsnID*/0,
    8034             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8035             :         // GIR_Coverage, 2635,
    8036             :         GIR_Done,
    8037             :       // Label 621: @17066
    8038             :       GIM_Try, /*On fail goto*//*Label 622*/ 17122, // Rule ID 2637 //
    8039             :         GIM_CheckFeatures, GIFBS_HasAES_NoAVX,
    8040             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aeskeygenassist,
    8041             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8042             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8043             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s8,
    8044             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8045             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8046             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
    8047             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    8048             :         // MIs[1] Operand 1
    8049             :         // No operand predicates
    8050             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    8051             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5426:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)  =>  (AESKEYGENASSIST128rr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (imm:{ *:[i8] }):$src2)
    8052             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AESKEYGENASSIST128rr,
    8053             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8054             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8055             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src2
    8056             :         GIR_EraseFromParent, /*InsnID*/0,
    8057             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8058             :         // GIR_Coverage, 2637,
    8059             :         GIR_Done,
    8060             :       // Label 622: @17122
    8061             :       GIM_Try, /*On fail goto*//*Label 623*/ 17174, // Rule ID 82 //
    8062             :         GIM_CheckFeatures, GIFBS_HasBMI2,
    8063             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_bmi_pdep_32,
    8064             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    8065             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    8066             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8067             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    8068             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    8069             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::GR32RegClassID,
    8070             :         // (intrinsic_wo_chain:{ *:[i32] } 6238:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (PDEP32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    8071             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PDEP32rr,
    8072             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8073             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8074             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8075             :         GIR_EraseFromParent, /*InsnID*/0,
    8076             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8077             :         // GIR_Coverage, 82,
    8078             :         GIR_Done,
    8079             :       // Label 623: @17174
    8080             :       GIM_Try, /*On fail goto*//*Label 624*/ 17226, // Rule ID 84 //
    8081             :         GIM_CheckFeatures, GIFBS_HasBMI2,
    8082             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_bmi_pdep_64,
    8083             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    8084             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    8085             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
    8086             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    8087             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    8088             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::GR64RegClassID,
    8089             :         // (intrinsic_wo_chain:{ *:[i64] } 6239:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (PDEP64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    8090             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PDEP64rr,
    8091             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8092             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8093             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8094             :         GIR_EraseFromParent, /*InsnID*/0,
    8095             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8096             :         // GIR_Coverage, 84,
    8097             :         GIR_Done,
    8098             :       // Label 624: @17226
    8099             :       GIM_Try, /*On fail goto*//*Label 625*/ 17278, // Rule ID 86 //
    8100             :         GIM_CheckFeatures, GIFBS_HasBMI2,
    8101             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_bmi_pext_32,
    8102             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    8103             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    8104             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8105             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    8106             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    8107             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::GR32RegClassID,
    8108             :         // (intrinsic_wo_chain:{ *:[i32] } 6240:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (PEXT32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    8109             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PEXT32rr,
    8110             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8111             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8112             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8113             :         GIR_EraseFromParent, /*InsnID*/0,
    8114             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8115             :         // GIR_Coverage, 86,
    8116             :         GIR_Done,
    8117             :       // Label 625: @17278
    8118             :       GIM_Try, /*On fail goto*//*Label 626*/ 17330, // Rule ID 88 //
    8119             :         GIM_CheckFeatures, GIFBS_HasBMI2,
    8120             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_bmi_pext_64,
    8121             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    8122             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    8123             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
    8124             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    8125             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    8126             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::GR64RegClassID,
    8127             :         // (intrinsic_wo_chain:{ *:[i64] } 6241:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (PEXT64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    8128             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PEXT64rr,
    8129             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8130             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8131             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8132             :         GIR_EraseFromParent, /*InsnID*/0,
    8133             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8134             :         // GIR_Coverage, 88,
    8135             :         GIR_Done,
    8136             :       // Label 626: @17330
    8137             :       GIM_Try, /*On fail goto*//*Label 627*/ 17382, // Rule ID 1407 //
    8138             :         GIM_CheckFeatures, GIFBS_HasAVX,
    8139             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvtsd2ss,
    8140             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8141             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8142             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8143             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8144             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8145             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8146             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6428:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2)  =>  (VCVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2)
    8147             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCVTSD2SSrr_Int,
    8148             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8149             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8150             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8151             :         GIR_EraseFromParent, /*InsnID*/0,
    8152             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8153             :         // GIR_Coverage, 1407,
    8154             :         GIR_Done,
    8155             :       // Label 627: @17382
    8156             :       GIM_Try, /*On fail goto*//*Label 628*/ 17434, // Rule ID 1409 //
    8157             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    8158             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cvtsd2ss,
    8159             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8160             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8161             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8162             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8163             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8164             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8165             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6428:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2)  =>  (CVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2)
    8166             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CVTSD2SSrr_Int,
    8167             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8168             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8169             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8170             :         GIR_EraseFromParent, /*InsnID*/0,
    8171             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8172             :         // GIR_Coverage, 1409,
    8173             :         GIR_Done,
    8174             :       // Label 628: @17434
    8175             :       GIM_Try, /*On fail goto*//*Label 629*/ 17486, // Rule ID 2317 //
    8176             :         GIM_CheckFeatures, GIFBS_HasAVX,
    8177             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_psign_b_128,
    8178             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8179             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8180             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8181             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8182             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8183             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8184             :         // (intrinsic_wo_chain:{ *:[v16i8] } 6549:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)  =>  (VPSIGNBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
    8185             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPSIGNBrr,
    8186             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8187             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8188             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8189             :         GIR_EraseFromParent, /*InsnID*/0,
    8190             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8191             :         // GIR_Coverage, 2317,
    8192             :         GIR_Done,
    8193             :       // Label 629: @17486
    8194             :       GIM_Try, /*On fail goto*//*Label 630*/ 17538, // Rule ID 2319 //
    8195             :         GIM_CheckFeatures, GIFBS_HasAVX,
    8196             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_psign_w_128,
    8197             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8198             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8199             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8200             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8201             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8202             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8203             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6553:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (VPSIGNWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    8204             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPSIGNWrr,
    8205             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8206             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8207             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8208             :         GIR_EraseFromParent, /*InsnID*/0,
    8209             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8210             :         // GIR_Coverage, 2319,
    8211             :         GIR_Done,
    8212             :       // Label 630: @17538
    8213             :       GIM_Try, /*On fail goto*//*Label 631*/ 17590, // Rule ID 2321 //
    8214             :         GIM_CheckFeatures, GIFBS_HasAVX,
    8215             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_psign_d_128,
    8216             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8217             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8218             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8219             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8220             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8221             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8222             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6551:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (VPSIGNDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    8223             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPSIGNDrr,
    8224             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8225             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8226             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8227             :         GIR_EraseFromParent, /*InsnID*/0,
    8228             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8229             :         // GIR_Coverage, 2321,
    8230             :         GIR_Done,
    8231             :       // Label 631: @17590
    8232             :       GIM_Try, /*On fail goto*//*Label 632*/ 17642, // Rule ID 2323 //
    8233             :         GIM_CheckFeatures, GIFBS_HasAVX,
    8234             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_phadd_sw_128,
    8235             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8236             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8237             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8238             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8239             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8240             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8241             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6533:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (VPHADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    8242             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDSWrr,
    8243             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8244             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8245             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8246             :         GIR_EraseFromParent, /*InsnID*/0,
    8247             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8248             :         // GIR_Coverage, 2323,
    8249             :         GIR_Done,
    8250             :       // Label 632: @17642
    8251             :       GIM_Try, /*On fail goto*//*Label 633*/ 17694, // Rule ID 2325 //
    8252             :         GIM_CheckFeatures, GIFBS_HasAVX,
    8253             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_phsub_sw_128,
    8254             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8255             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8256             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8257             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8258             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8259             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8260             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6539:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (VPHSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    8261             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHSUBSWrr,
    8262             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8263             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8264             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8265             :         GIR_EraseFromParent, /*InsnID*/0,
    8266             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8267             :         // GIR_Coverage, 2325,
    8268             :         GIR_Done,
    8269             :       // Label 633: @17694
    8270             :       GIM_Try, /*On fail goto*//*Label 634*/ 17746, // Rule ID 2341 //
    8271             :         GIM_CheckFeatures, GIFBS_HasAVX2,
    8272             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_avx2_psign_b,
    8273             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v32s8,
    8274             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s8,
    8275             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v32s8,
    8276             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8277             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8278             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8279             :         // (intrinsic_wo_chain:{ *:[v32i8] } 5533:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)  =>  (VPSIGNBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
    8280             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPSIGNBYrr,
    8281             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8282             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8283             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8284             :         GIR_EraseFromParent, /*InsnID*/0,
    8285             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8286             :         // GIR_Coverage, 2341,
    8287             :         GIR_Done,
    8288             :       // Label 634: @17746
    8289             :       GIM_Try, /*On fail goto*//*Label 635*/ 17798, // Rule ID 2343 //
    8290             :         GIM_CheckFeatures, GIFBS_HasAVX2,
    8291             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_avx2_psign_w,
    8292             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s16,
    8293             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s16,
    8294             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s16,
    8295             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8296             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8297             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8298             :         // (intrinsic_wo_chain:{ *:[v16i16] } 5535:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)  =>  (VPSIGNWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
    8299             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPSIGNWYrr,
    8300             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8301             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8302             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8303             :         GIR_EraseFromParent, /*InsnID*/0,
    8304             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8305             :         // GIR_Coverage, 2343,
    8306             :         GIR_Done,
    8307             :       // Label 635: @17798
    8308             :       GIM_Try, /*On fail goto*//*Label 636*/ 17850, // Rule ID 2345 //
    8309             :         GIM_CheckFeatures, GIFBS_HasAVX2,
    8310             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_avx2_psign_d,
    8311             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s32,
    8312             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s32,
    8313             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s32,
    8314             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8315             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8316             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8317             :         // (intrinsic_wo_chain:{ *:[v8i32] } 5534:{ *:[iPTR] }, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)  =>  (VPSIGNDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
    8318             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPSIGNDYrr,
    8319             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8320             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8321             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8322             :         GIR_EraseFromParent, /*InsnID*/0,
    8323             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8324             :         // GIR_Coverage, 2345,
    8325             :         GIR_Done,
    8326             :       // Label 636: @17850
    8327             :       GIM_Try, /*On fail goto*//*Label 637*/ 17902, // Rule ID 2347 //
    8328             :         GIM_CheckFeatures, GIFBS_HasAVX2,
    8329             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_avx2_phadd_sw,
    8330             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s16,
    8331             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s16,
    8332             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s16,
    8333             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8334             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8335             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8336             :         // (intrinsic_wo_chain:{ *:[v16i16] } 5520:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)  =>  (VPHADDSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
    8337             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHADDSWYrr,
    8338             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8339             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8340             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8341             :         GIR_EraseFromParent, /*InsnID*/0,
    8342             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8343             :         // GIR_Coverage, 2347,
    8344             :         GIR_Done,
    8345             :       // Label 637: @17902
    8346             :       GIM_Try, /*On fail goto*//*Label 638*/ 17954, // Rule ID 2349 //
    8347             :         GIM_CheckFeatures, GIFBS_HasAVX2,
    8348             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_avx2_phsub_sw,
    8349             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s16,
    8350             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s16,
    8351             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s16,
    8352             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8353             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8354             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8355             :         // (intrinsic_wo_chain:{ *:[v16i16] } 5523:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)  =>  (VPHSUBSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
    8356             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VPHSUBSWYrr,
    8357             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8358             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8359             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8360             :         GIR_EraseFromParent, /*InsnID*/0,
    8361             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8362             :         // GIR_Coverage, 2349,
    8363             :         GIR_Done,
    8364             :       // Label 638: @17954
    8365             :       GIM_Try, /*On fail goto*//*Label 639*/ 18006, // Rule ID 2359 //
    8366             :         GIM_CheckFeatures, GIFBS_UseSSSE3,
    8367             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_psign_b_128,
    8368             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
    8369             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    8370             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8371             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8372             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8373             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8374             :         // (intrinsic_wo_chain:{ *:[v16i8] } 6549:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)  =>  (PSIGNBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
    8375             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PSIGNBrr,
    8376             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8377             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8378             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8379             :         GIR_EraseFromParent, /*InsnID*/0,
    8380             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8381             :         // GIR_Coverage, 2359,
    8382             :         GIR_Done,
    8383             :       // Label 639: @18006
    8384             :       GIM_Try, /*On fail goto*//*Label 640*/ 18058, // Rule ID 2361 //
    8385             :         GIM_CheckFeatures, GIFBS_UseSSSE3,
    8386             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_psign_w_128,
    8387             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8388             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8389             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8390             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8391             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8392             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8393             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6553:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (PSIGNWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    8394             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PSIGNWrr,
    8395             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8396             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8397             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8398             :         GIR_EraseFromParent, /*InsnID*/0,
    8399             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8400             :         // GIR_Coverage, 2361,
    8401             :         GIR_Done,
    8402             :       // Label 640: @18058
    8403             :       GIM_Try, /*On fail goto*//*Label 641*/ 18110, // Rule ID 2363 //
    8404             :         GIM_CheckFeatures, GIFBS_UseSSSE3,
    8405             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_psign_d_128,
    8406             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8407             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8408             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8409             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8410             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8411             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8412             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6551:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (PSIGNDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    8413             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PSIGNDrr,
    8414             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8415             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8416             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8417             :         GIR_EraseFromParent, /*InsnID*/0,
    8418             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8419             :         // GIR_Coverage, 2363,
    8420             :         GIR_Done,
    8421             :       // Label 641: @18110
    8422             :       GIM_Try, /*On fail goto*//*Label 642*/ 18162, // Rule ID 2367 //
    8423             :         GIM_CheckFeatures, GIFBS_UseSSSE3,
    8424             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_phadd_sw_128,
    8425             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8426             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8427             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8428             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8429             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8430             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8431             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6533:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (PHADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    8432             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PHADDSWrr,
    8433             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8434             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8435             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8436             :         GIR_EraseFromParent, /*InsnID*/0,
    8437             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8438             :         // GIR_Coverage, 2367,
    8439             :         GIR_Done,
    8440             :       // Label 642: @18162
    8441             :       GIM_Try, /*On fail goto*//*Label 643*/ 18214, // Rule ID 2369 //
    8442             :         GIM_CheckFeatures, GIFBS_UseSSSE3,
    8443             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_ssse3_phsub_sw_128,
    8444             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    8445             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
    8446             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
    8447             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8448             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8449             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8450             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6539:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)  =>  (PHSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
    8451             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::PHSUBSWrr,
    8452             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8453             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8454             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8455             :         GIR_EraseFromParent, /*InsnID*/0,
    8456             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8457             :         // GIR_Coverage, 2369,
    8458             :         GIR_Done,
    8459             :       // Label 643: @18214
    8460             :       GIM_Try, /*On fail goto*//*Label 644*/ 18266, // Rule ID 2586 //
    8461             :         GIM_CheckFeatures, GIFBS_HasSSE42,
    8462             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse42_crc32_32_8,
    8463             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    8464             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    8465             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s8,
    8466             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    8467             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    8468             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::GR8RegClassID,
    8469             :         // (intrinsic_wo_chain:{ *:[i32] } 6507:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2)  =>  (CRC32r32r8:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2)
    8470             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CRC32r32r8,
    8471             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8472             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8473             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8474             :         GIR_EraseFromParent, /*InsnID*/0,
    8475             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8476             :         // GIR_Coverage, 2586,
    8477             :         GIR_Done,
    8478             :       // Label 644: @18266
    8479             :       GIM_Try, /*On fail goto*//*Label 645*/ 18318, // Rule ID 2588 //
    8480             :         GIM_CheckFeatures, GIFBS_HasSSE42,
    8481             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse42_crc32_32_16,
    8482             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    8483             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    8484             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s16,
    8485             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    8486             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    8487             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::GR16RegClassID,
    8488             :         // (intrinsic_wo_chain:{ *:[i32] } 6505:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR16:{ *:[i16] }:$src2)  =>  (CRC32r32r16:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR16:{ *:[i16] }:$src2)
    8489             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CRC32r32r16,
    8490             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8491             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8492             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8493             :         GIR_EraseFromParent, /*InsnID*/0,
    8494             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8495             :         // GIR_Coverage, 2588,
    8496             :         GIR_Done,
    8497             :       // Label 645: @18318
    8498             :       GIM_Try, /*On fail goto*//*Label 646*/ 18370, // Rule ID 2590 //
    8499             :         GIM_CheckFeatures, GIFBS_HasSSE42,
    8500             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse42_crc32_32_32,
    8501             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
    8502             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
    8503             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
    8504             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR32RegClassID,
    8505             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR32RegClassID,
    8506             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::GR32RegClassID,
    8507             :         // (intrinsic_wo_chain:{ *:[i32] } 6506:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)  =>  (CRC32r32r32:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
    8508             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CRC32r32r32,
    8509             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8510             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8511             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8512             :         GIR_EraseFromParent, /*InsnID*/0,
    8513             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8514             :         // GIR_Coverage, 2590,
    8515             :         GIR_Done,
    8516             :       // Label 646: @18370
    8517             :       GIM_Try, /*On fail goto*//*Label 647*/ 18422, // Rule ID 2592 //
    8518             :         GIM_CheckFeatures, GIFBS_HasSSE42,
    8519             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse42_crc32_64_64,
    8520             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
    8521             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
    8522             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
    8523             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::GR64RegClassID,
    8524             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::GR64RegClassID,
    8525             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::GR64RegClassID,
    8526             :         // (intrinsic_wo_chain:{ *:[i64] } 6508:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)  =>  (CRC32r64r64:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
    8527             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CRC32r64r64,
    8528             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8529             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8530             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8531             :         GIR_EraseFromParent, /*InsnID*/0,
    8532             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8533             :         // GIR_Coverage, 2592,
    8534             :         GIR_Done,
    8535             :       // Label 647: @18422
    8536             :       GIM_Try, /*On fail goto*//*Label 648*/ 18474, // Rule ID 2595 //
    8537             :         GIM_CheckFeatures, GIFBS_HasSHA,
    8538             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sha1nexte,
    8539             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8540             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8541             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8542             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8543             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8544             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8545             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6371:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (SHA1NEXTErr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    8546             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SHA1NEXTErr,
    8547             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8548             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8549             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8550             :         GIR_EraseFromParent, /*InsnID*/0,
    8551             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8552             :         // GIR_Coverage, 2595,
    8553             :         GIR_Done,
    8554             :       // Label 648: @18474
    8555             :       GIM_Try, /*On fail goto*//*Label 649*/ 18526, // Rule ID 2597 //
    8556             :         GIM_CheckFeatures, GIFBS_HasSHA,
    8557             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sha1msg1,
    8558             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8559             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8560             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8561             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8562             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8563             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8564             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6369:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (SHA1MSG1rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    8565             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SHA1MSG1rr,
    8566             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8567             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8568             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8569             :         GIR_EraseFromParent, /*InsnID*/0,
    8570             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8571             :         // GIR_Coverage, 2597,
    8572             :         GIR_Done,
    8573             :       // Label 649: @18526
    8574             :       GIM_Try, /*On fail goto*//*Label 650*/ 18578, // Rule ID 2599 //
    8575             :         GIM_CheckFeatures, GIFBS_HasSHA,
    8576             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sha1msg2,
    8577             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8578             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8579             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8580             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8581             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8582             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8583             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6370:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (SHA1MSG2rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    8584             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SHA1MSG2rr,
    8585             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8586             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8587             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8588             :         GIR_EraseFromParent, /*InsnID*/0,
    8589             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8590             :         // GIR_Coverage, 2599,
    8591             :         GIR_Done,
    8592             :       // Label 650: @18578
    8593             :       GIM_Try, /*On fail goto*//*Label 651*/ 18630, // Rule ID 2603 //
    8594             :         GIM_CheckFeatures, GIFBS_HasSHA,
    8595             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sha256msg1,
    8596             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8597             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8598             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8599             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8600             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8601             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8602             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6373:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (SHA256MSG1rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    8603             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SHA256MSG1rr,
    8604             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8605             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8606             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8607             :         GIR_EraseFromParent, /*InsnID*/0,
    8608             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8609             :         // GIR_Coverage, 2603,
    8610             :         GIR_Done,
    8611             :       // Label 651: @18630
    8612             :       GIM_Try, /*On fail goto*//*Label 652*/ 18682, // Rule ID 2605 //
    8613             :         GIM_CheckFeatures, GIFBS_HasSHA,
    8614             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sha256msg2,
    8615             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    8616             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    8617             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    8618             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8619             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8620             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8621             :         // (intrinsic_wo_chain:{ *:[v4i32] } 6374:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)  =>  (SHA256MSG2rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
    8622             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::SHA256MSG2rr,
    8623             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8624             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8625             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8626             :         GIR_EraseFromParent, /*InsnID*/0,
    8627             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8628             :         // GIR_Coverage, 2605,
    8629             :         GIR_Done,
    8630             :       // Label 652: @18682
    8631             :       GIM_Try, /*On fail goto*//*Label 653*/ 18734, // Rule ID 2607 //
    8632             :         GIM_CheckFeatures, GIFBS_HasAES_HasAVX_NoVLX_Or_NoVAES,
    8633             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenc,
    8634             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8635             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8636             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8637             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8638             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8639             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8640             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5419:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VAESENCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    8641             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCrr,
    8642             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8643             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8644             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8645             :         GIR_EraseFromParent, /*InsnID*/0,
    8646             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8647             :         // GIR_Coverage, 2607,
    8648             :         GIR_Done,
    8649             :       // Label 653: @18734
    8650             :       GIM_Try, /*On fail goto*//*Label 654*/ 18786, // Rule ID 2609 //
    8651             :         GIM_CheckFeatures, GIFBS_HasAES_HasAVX_NoVLX_Or_NoVAES,
    8652             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenclast,
    8653             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8654             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8655             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8656             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8657             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8658             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8659             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5422:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VAESENCLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    8660             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCLASTrr,
    8661             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8662             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8663             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8664             :         GIR_EraseFromParent, /*InsnID*/0,
    8665             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8666             :         // GIR_Coverage, 2609,
    8667             :         GIR_Done,
    8668             :       // Label 654: @18786
    8669             :       GIM_Try, /*On fail goto*//*Label 655*/ 18838, // Rule ID 2611 //
    8670             :         GIM_CheckFeatures, GIFBS_HasAES_HasAVX_NoVLX_Or_NoVAES,
    8671             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdec,
    8672             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8673             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8674             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8675             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8676             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8677             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8678             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5413:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VAESDECrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    8679             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECrr,
    8680             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8681             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8682             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8683             :         GIR_EraseFromParent, /*InsnID*/0,
    8684             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8685             :         // GIR_Coverage, 2611,
    8686             :         GIR_Done,
    8687             :       // Label 655: @18838
    8688             :       GIM_Try, /*On fail goto*//*Label 656*/ 18890, // Rule ID 2613 //
    8689             :         GIM_CheckFeatures, GIFBS_HasAES_HasAVX_NoVLX_Or_NoVAES,
    8690             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdeclast,
    8691             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8692             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8693             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8694             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8695             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8696             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8697             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5416:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (VAESDECLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    8698             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECLASTrr,
    8699             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8700             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8701             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8702             :         GIR_EraseFromParent, /*InsnID*/0,
    8703             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8704             :         // GIR_Coverage, 2613,
    8705             :         GIR_Done,
    8706             :       // Label 656: @18890
    8707             :       GIM_Try, /*On fail goto*//*Label 657*/ 18942, // Rule ID 2615 //
    8708             :         GIM_CheckFeatures, GIFBS_HasVAES_NoVLX,
    8709             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenc_256,
    8710             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    8711             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    8712             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s64,
    8713             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8714             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8715             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8716             :         // (intrinsic_wo_chain:{ *:[v4i64] } 5420:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VAESENCYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    8717             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCYrr,
    8718             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8719             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8720             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8721             :         GIR_EraseFromParent, /*InsnID*/0,
    8722             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8723             :         // GIR_Coverage, 2615,
    8724             :         GIR_Done,
    8725             :       // Label 657: @18942
    8726             :       GIM_Try, /*On fail goto*//*Label 658*/ 18994, // Rule ID 2617 //
    8727             :         GIM_CheckFeatures, GIFBS_HasVAES_NoVLX,
    8728             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenclast_256,
    8729             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    8730             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    8731             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s64,
    8732             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8733             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8734             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8735             :         // (intrinsic_wo_chain:{ *:[v4i64] } 5423:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VAESENCLASTYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    8736             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCLASTYrr,
    8737             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8738             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8739             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8740             :         GIR_EraseFromParent, /*InsnID*/0,
    8741             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8742             :         // GIR_Coverage, 2617,
    8743             :         GIR_Done,
    8744             :       // Label 658: @18994
    8745             :       GIM_Try, /*On fail goto*//*Label 659*/ 19046, // Rule ID 2619 //
    8746             :         GIM_CheckFeatures, GIFBS_HasVAES_NoVLX,
    8747             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdec_256,
    8748             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    8749             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    8750             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s64,
    8751             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8752             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8753             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8754             :         // (intrinsic_wo_chain:{ *:[v4i64] } 5414:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VAESDECYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    8755             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECYrr,
    8756             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8757             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8758             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8759             :         GIR_EraseFromParent, /*InsnID*/0,
    8760             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8761             :         // GIR_Coverage, 2619,
    8762             :         GIR_Done,
    8763             :       // Label 659: @19046
    8764             :       GIM_Try, /*On fail goto*//*Label 660*/ 19098, // Rule ID 2621 //
    8765             :         GIM_CheckFeatures, GIFBS_HasVAES_NoVLX,
    8766             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdeclast_256,
    8767             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    8768             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    8769             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s64,
    8770             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    8771             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    8772             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    8773             :         // (intrinsic_wo_chain:{ *:[v4i64] } 5417:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)  =>  (VAESDECLASTYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
    8774             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECLASTYrr,
    8775             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8776             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8777             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8778             :         GIR_EraseFromParent, /*InsnID*/0,
    8779             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8780             :         // GIR_Coverage, 2621,
    8781             :         GIR_Done,
    8782             :       // Label 660: @19098
    8783             :       GIM_Try, /*On fail goto*//*Label 661*/ 19150, // Rule ID 2623 //
    8784             :         GIM_CheckFeatures, GIFBS_HasAES_NoAVX,
    8785             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenc,
    8786             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8787             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8788             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8789             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8790             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8791             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8792             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5419:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (AESENCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    8793             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AESENCrr,
    8794             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8795             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8796             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8797             :         GIR_EraseFromParent, /*InsnID*/0,
    8798             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8799             :         // GIR_Coverage, 2623,
    8800             :         GIR_Done,
    8801             :       // Label 661: @19150
    8802             :       GIM_Try, /*On fail goto*//*Label 662*/ 19202, // Rule ID 2625 //
    8803             :         GIM_CheckFeatures, GIFBS_HasAES_NoAVX,
    8804             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenclast,
    8805             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8806             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8807             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8808             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8809             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8810             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8811             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5422:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (AESENCLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    8812             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AESENCLASTrr,
    8813             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8814             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8815             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8816             :         GIR_EraseFromParent, /*InsnID*/0,
    8817             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8818             :         // GIR_Coverage, 2625,
    8819             :         GIR_Done,
    8820             :       // Label 662: @19202
    8821             :       GIM_Try, /*On fail goto*//*Label 663*/ 19254, // Rule ID 2627 //
    8822             :         GIM_CheckFeatures, GIFBS_HasAES_NoAVX,
    8823             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdec,
    8824             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8825             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8826             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8827             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8828             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8829             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8830             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5413:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (AESDECrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    8831             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AESDECrr,
    8832             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8833             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8834             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8835             :         GIR_EraseFromParent, /*InsnID*/0,
    8836             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8837             :         // GIR_Coverage, 2627,
    8838             :         GIR_Done,
    8839             :       // Label 663: @19254
    8840             :       GIM_Try, /*On fail goto*//*Label 664*/ 19306, // Rule ID 2629 //
    8841             :         GIM_CheckFeatures, GIFBS_HasAES_NoAVX,
    8842             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdeclast,
    8843             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8844             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8845             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8846             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8847             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8848             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8849             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5416:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)  =>  (AESDECLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
    8850             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::AESDECLASTrr,
    8851             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8852             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8853             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8854             :         GIR_EraseFromParent, /*InsnID*/0,
    8855             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8856             :         // GIR_Coverage, 2629,
    8857             :         GIR_Done,
    8858             :       // Label 664: @19306
    8859             :       GIM_Try, /*On fail goto*//*Label 665*/ 19358, // Rule ID 2646 //
    8860             :         GIM_CheckFeatures, GIFBS_HasSSE4A,
    8861             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse4a_extrq,
    8862             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8863             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8864             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    8865             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8866             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8867             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8868             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6523:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src, VR128:{ *:[v16i8] }:$mask)  =>  (EXTRQ:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v16i8] }:$mask)
    8869             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::EXTRQ,
    8870             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8871             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    8872             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // mask
    8873             :         GIR_EraseFromParent, /*InsnID*/0,
    8874             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8875             :         // GIR_Coverage, 2646,
    8876             :         GIR_Done,
    8877             :       // Label 665: @19358
    8878             :       GIM_Try, /*On fail goto*//*Label 666*/ 19410, // Rule ID 2648 //
    8879             :         GIM_CheckFeatures, GIFBS_HasSSE4A,
    8880             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse4a_insertq,
    8881             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8882             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8883             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8884             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    8885             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    8886             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    8887             :         // (intrinsic_wo_chain:{ *:[v2i64] } 6525:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$mask)  =>  (INSERTQ:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$mask)
    8888             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::INSERTQ,
    8889             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8890             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
    8891             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // mask
    8892             :         GIR_EraseFromParent, /*InsnID*/0,
    8893             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8894             :         // GIR_Coverage, 2648,
    8895             :         GIR_Done,
    8896             :       // Label 666: @19410
    8897             :       GIM_Try, /*On fail goto*//*Label 667*/ 19462, // Rule ID 11340 //
    8898             :         GIM_CheckFeatures, GIFBS_HasVAES_HasVLX,
    8899             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenc,
    8900             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8901             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8902             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8903             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    8904             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    8905             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128XRegClassID,
    8906             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5419:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VAESENCZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    8907             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCZ128rr,
    8908             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8909             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8910             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8911             :         GIR_EraseFromParent, /*InsnID*/0,
    8912             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8913             :         // GIR_Coverage, 11340,
    8914             :         GIR_Done,
    8915             :       // Label 667: @19462
    8916             :       GIM_Try, /*On fail goto*//*Label 668*/ 19514, // Rule ID 11342 //
    8917             :         GIM_CheckFeatures, GIFBS_HasVAES_HasVLX,
    8918             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenc_256,
    8919             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    8920             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    8921             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s64,
    8922             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    8923             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    8924             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256XRegClassID,
    8925             :         // (intrinsic_wo_chain:{ *:[v4i64] } 5420:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VAESENCZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    8926             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCZ256rr,
    8927             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8928             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8929             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8930             :         GIR_EraseFromParent, /*InsnID*/0,
    8931             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8932             :         // GIR_Coverage, 11342,
    8933             :         GIR_Done,
    8934             :       // Label 668: @19514
    8935             :       GIM_Try, /*On fail goto*//*Label 669*/ 19566, // Rule ID 11344 //
    8936             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVAES,
    8937             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenc_512,
    8938             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s64,
    8939             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    8940             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s64,
    8941             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    8942             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    8943             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR512RegClassID,
    8944             :         // (intrinsic_wo_chain:{ *:[v8i64] } 5421:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VAESENCZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    8945             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCZrr,
    8946             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8947             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8948             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8949             :         GIR_EraseFromParent, /*InsnID*/0,
    8950             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8951             :         // GIR_Coverage, 11344,
    8952             :         GIR_Done,
    8953             :       // Label 669: @19566
    8954             :       GIM_Try, /*On fail goto*//*Label 670*/ 19618, // Rule ID 11346 //
    8955             :         GIM_CheckFeatures, GIFBS_HasVAES_HasVLX,
    8956             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenclast,
    8957             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    8958             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    8959             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    8960             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    8961             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    8962             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128XRegClassID,
    8963             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5422:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VAESENCLASTZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    8964             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCLASTZ128rr,
    8965             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8966             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8967             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8968             :         GIR_EraseFromParent, /*InsnID*/0,
    8969             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8970             :         // GIR_Coverage, 11346,
    8971             :         GIR_Done,
    8972             :       // Label 670: @19618
    8973             :       GIM_Try, /*On fail goto*//*Label 671*/ 19670, // Rule ID 11348 //
    8974             :         GIM_CheckFeatures, GIFBS_HasVAES_HasVLX,
    8975             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenclast_256,
    8976             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    8977             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    8978             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s64,
    8979             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    8980             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    8981             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256XRegClassID,
    8982             :         // (intrinsic_wo_chain:{ *:[v4i64] } 5423:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VAESENCLASTZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    8983             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCLASTZ256rr,
    8984             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    8985             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    8986             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    8987             :         GIR_EraseFromParent, /*InsnID*/0,
    8988             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    8989             :         // GIR_Coverage, 11348,
    8990             :         GIR_Done,
    8991             :       // Label 671: @19670
    8992             :       GIM_Try, /*On fail goto*//*Label 672*/ 19722, // Rule ID 11350 //
    8993             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVAES,
    8994             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesenclast_512,
    8995             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s64,
    8996             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    8997             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s64,
    8998             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    8999             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    9000             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR512RegClassID,
    9001             :         // (intrinsic_wo_chain:{ *:[v8i64] } 5424:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VAESENCLASTZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    9002             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESENCLASTZrr,
    9003             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9004             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9005             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9006             :         GIR_EraseFromParent, /*InsnID*/0,
    9007             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9008             :         // GIR_Coverage, 11350,
    9009             :         GIR_Done,
    9010             :       // Label 672: @19722
    9011             :       GIM_Try, /*On fail goto*//*Label 673*/ 19774, // Rule ID 11352 //
    9012             :         GIM_CheckFeatures, GIFBS_HasVAES_HasVLX,
    9013             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdec,
    9014             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9015             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9016             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    9017             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    9018             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    9019             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128XRegClassID,
    9020             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5413:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VAESDECZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    9021             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECZ128rr,
    9022             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9023             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9024             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9025             :         GIR_EraseFromParent, /*InsnID*/0,
    9026             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9027             :         // GIR_Coverage, 11352,
    9028             :         GIR_Done,
    9029             :       // Label 673: @19774
    9030             :       GIM_Try, /*On fail goto*//*Label 674*/ 19826, // Rule ID 11354 //
    9031             :         GIM_CheckFeatures, GIFBS_HasVAES_HasVLX,
    9032             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdec_256,
    9033             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    9034             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    9035             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s64,
    9036             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    9037             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    9038             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256XRegClassID,
    9039             :         // (intrinsic_wo_chain:{ *:[v4i64] } 5414:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VAESDECZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    9040             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECZ256rr,
    9041             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9042             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9043             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9044             :         GIR_EraseFromParent, /*InsnID*/0,
    9045             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9046             :         // GIR_Coverage, 11354,
    9047             :         GIR_Done,
    9048             :       // Label 674: @19826
    9049             :       GIM_Try, /*On fail goto*//*Label 675*/ 19878, // Rule ID 11356 //
    9050             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVAES,
    9051             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdec_512,
    9052             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s64,
    9053             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    9054             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s64,
    9055             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    9056             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    9057             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR512RegClassID,
    9058             :         // (intrinsic_wo_chain:{ *:[v8i64] } 5415:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VAESDECZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    9059             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECZrr,
    9060             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9061             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9062             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9063             :         GIR_EraseFromParent, /*InsnID*/0,
    9064             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9065             :         // GIR_Coverage, 11356,
    9066             :         GIR_Done,
    9067             :       // Label 675: @19878
    9068             :       GIM_Try, /*On fail goto*//*Label 676*/ 19930, // Rule ID 11358 //
    9069             :         GIM_CheckFeatures, GIFBS_HasVAES_HasVLX,
    9070             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdeclast,
    9071             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9072             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9073             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    9074             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128XRegClassID,
    9075             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128XRegClassID,
    9076             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128XRegClassID,
    9077             :         // (intrinsic_wo_chain:{ *:[v2i64] } 5416:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)  =>  (VAESDECLASTZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
    9078             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECLASTZ128rr,
    9079             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9080             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9081             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9082             :         GIR_EraseFromParent, /*InsnID*/0,
    9083             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9084             :         // GIR_Coverage, 11358,
    9085             :         GIR_Done,
    9086             :       // Label 676: @19930
    9087             :       GIM_Try, /*On fail goto*//*Label 677*/ 19982, // Rule ID 11360 //
    9088             :         GIM_CheckFeatures, GIFBS_HasVAES_HasVLX,
    9089             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdeclast_256,
    9090             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s64,
    9091             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s64,
    9092             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s64,
    9093             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256XRegClassID,
    9094             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256XRegClassID,
    9095             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256XRegClassID,
    9096             :         // (intrinsic_wo_chain:{ *:[v4i64] } 5417:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)  =>  (VAESDECLASTZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
    9097             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECLASTZ256rr,
    9098             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9099             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9100             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9101             :         GIR_EraseFromParent, /*InsnID*/0,
    9102             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9103             :         // GIR_Coverage, 11360,
    9104             :         GIR_Done,
    9105             :       // Label 677: @19982
    9106             :       GIM_Try, /*On fail goto*//*Label 678*/ 20034, // Rule ID 11362 //
    9107             :         GIM_CheckFeatures, GIFBS_HasAVX512_HasVAES,
    9108             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_aesni_aesdeclast_512,
    9109             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s64,
    9110             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s64,
    9111             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s64,
    9112             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR512RegClassID,
    9113             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR512RegClassID,
    9114             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR512RegClassID,
    9115             :         // (intrinsic_wo_chain:{ *:[v8i64] } 5418:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)  =>  (VAESDECLASTZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
    9116             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VAESDECLASTZrr,
    9117             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9118             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9119             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9120             :         GIR_EraseFromParent, /*InsnID*/0,
    9121             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9122             :         // GIR_Coverage, 11362,
    9123             :         GIR_Done,
    9124             :       // Label 678: @20034
    9125             :       GIM_Reject,
    9126             :     // Label 620: @20035
    9127             :     GIM_Try, /*On fail goto*//*Label 679*/ 22485,
    9128             :       GIM_CheckNumOperands, /*MI*/0, /*Expected*/5,
    9129             :       GIM_Try, /*On fail goto*//*Label 680*/ 20108, // Rule ID 1463 //
    9130             :         GIM_CheckFeatures, GIFBS_HasAVX,
    9131             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cmp_ss,
    9132             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    9133             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    9134             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    9135             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9136             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    9137             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    9138             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    9139             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9140             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9141             :         // MIs[1] Operand 1
    9142             :         // No operand predicates
    9143             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9144             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6378:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc)  =>  (VCMPSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc)
    9145             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCMPSSrr_Int,
    9146             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9147             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9148             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src
    9149             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cc
    9150             :         GIR_EraseFromParent, /*InsnID*/0,
    9151             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9152             :         // GIR_Coverage, 1463,
    9153             :         GIR_Done,
    9154             :       // Label 680: @20108
    9155             :       GIM_Try, /*On fail goto*//*Label 681*/ 20176, // Rule ID 1465 //
    9156             :         GIM_CheckFeatures, GIFBS_HasAVX,
    9157             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cmp_sd,
    9158             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9159             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9160             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    9161             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9162             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    9163             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    9164             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    9165             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9166             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9167             :         // MIs[1] Operand 1
    9168             :         // No operand predicates
    9169             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9170             :         // (intrinsic_wo_chain:{ *:[v2f64] } 6416:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc)  =>  (VCMPSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc)
    9171             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VCMPSDrr_Int,
    9172             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9173             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9174             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src
    9175             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cc
    9176             :         GIR_EraseFromParent, /*InsnID*/0,
    9177             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9178             :         // GIR_Coverage, 1465,
    9179             :         GIR_Done,
    9180             :       // Label 681: @20176
    9181             :       GIM_Try, /*On fail goto*//*Label 682*/ 20244, // Rule ID 1467 //
    9182             :         GIM_CheckFeatures, GIFBS_UseSSE1,
    9183             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse_cmp_ss,
    9184             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    9185             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    9186             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    9187             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9188             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    9189             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    9190             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    9191             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9192             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9193             :         // MIs[1] Operand 1
    9194             :         // No operand predicates
    9195             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9196             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6378:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc)  =>  (CMPSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (imm:{ *:[i8] }):$cc)
    9197             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CMPSSrr_Int,
    9198             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9199             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9200             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src
    9201             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cc
    9202             :         GIR_EraseFromParent, /*InsnID*/0,
    9203             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9204             :         // GIR_Coverage, 1467,
    9205             :         GIR_Done,
    9206             :       // Label 682: @20244
    9207             :       GIM_Try, /*On fail goto*//*Label 683*/ 20312, // Rule ID 1469 //
    9208             :         GIM_CheckFeatures, GIFBS_UseSSE2,
    9209             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse2_cmp_sd,
    9210             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9211             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9212             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    9213             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9214             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    9215             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    9216             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    9217             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9218             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9219             :         // MIs[1] Operand 1
    9220             :         // No operand predicates
    9221             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9222             :         // (intrinsic_wo_chain:{ *:[v2f64] } 6416:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc)  =>  (CMPSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (imm:{ *:[i8] }):$cc)
    9223             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::CMPSDrr_Int,
    9224             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9225             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9226             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src
    9227             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // cc
    9228             :         GIR_EraseFromParent, /*InsnID*/0,
    9229             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9230             :         // GIR_Coverage, 1469,
    9231             :         GIR_Done,
    9232             :       // Label 683: @20312
    9233             :       GIM_Try, /*On fail goto*//*Label 684*/ 20380, // Rule ID 2527 //
    9234             :         GIM_CheckFeatures, GIFBS_HasAVX,
    9235             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse41_mpsadbw,
    9236             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    9237             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    9238             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    9239             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9240             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    9241             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    9242             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    9243             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9244             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9245             :         // MIs[1] Operand 1
    9246             :         // No operand predicates
    9247             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9248             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6494:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)  =>  (VMPSADBWrri:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
    9249             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VMPSADBWrri,
    9250             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9251             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9252             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9253             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src3
    9254             :         GIR_EraseFromParent, /*InsnID*/0,
    9255             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9256             :         // GIR_Coverage, 2527,
    9257             :         GIR_Done,
    9258             :       // Label 684: @20380
    9259             :       GIM_Try, /*On fail goto*//*Label 685*/ 20448, // Rule ID 2529 //
    9260             :         GIM_CheckFeatures, GIFBS_HasAVX,
    9261             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse41_dpps,
    9262             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
    9263             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
    9264             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
    9265             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9266             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    9267             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    9268             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    9269             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9270             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9271             :         // MIs[1] Operand 1
    9272             :         // No operand predicates
    9273             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9274             :         // (intrinsic_wo_chain:{ *:[v4f32] } 6492:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)  =>  (VDPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (imm:{ *:[i8] }):$src3)
    9275             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VDPPSrri,
    9276             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9277             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9278             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9279             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src3
    9280             :         GIR_EraseFromParent, /*InsnID*/0,
    9281             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9282             :         // GIR_Coverage, 2529,
    9283             :         GIR_Done,
    9284             :       // Label 685: @20448
    9285             :       GIM_Try, /*On fail goto*//*Label 686*/ 20516, // Rule ID 2531 //
    9286             :         GIM_CheckFeatures, GIFBS_HasAVX,
    9287             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse41_dppd,
    9288             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
    9289             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
    9290             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
    9291             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9292             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    9293             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    9294             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    9295             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9296             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9297             :         // MIs[1] Operand 1
    9298             :         // No operand predicates
    9299             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9300             :         // (intrinsic_wo_chain:{ *:[v2f64] } 6491:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)  =>  (VDPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (imm:{ *:[i8] }):$src3)
    9301             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VDPPDrri,
    9302             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9303             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9304             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9305             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src3
    9306             :         GIR_EraseFromParent, /*InsnID*/0,
    9307             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9308             :         // GIR_Coverage, 2531,
    9309             :         GIR_Done,
    9310             :       // Label 686: @20516
    9311             :       GIM_Try, /*On fail goto*//*Label 687*/ 20584, // Rule ID 2533 //
    9312             :         GIM_CheckFeatures, GIFBS_HasAVX,
    9313             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_avx_dp_ps_256,
    9314             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s32,
    9315             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s32,
    9316             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s32,
    9317             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9318             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    9319             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    9320             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    9321             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9322             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9323             :         // MIs[1] Operand 1
    9324             :         // No operand predicates
    9325             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9326             :         // (intrinsic_wo_chain:{ *:[v8f32] } 5438:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3)  =>  (VDPPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (imm:{ *:[i8] }):$src3)
    9327             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VDPPSYrri,
    9328             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9329             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9330             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9331             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src3
    9332             :         GIR_EraseFromParent, /*InsnID*/0,
    9333             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9334             :         // GIR_Coverage, 2533,
    9335             :         GIR_Done,
    9336             :       // Label 687: @20584
    9337             :       GIM_Try, /*On fail goto*//*Label 688*/ 20652, // Rule ID 2535 //
    9338             :         GIM_CheckFeatures, GIFBS_HasAVX2,
    9339             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_avx2_mpsadbw,
    9340             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s16,
    9341             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v32s8,
    9342             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v32s8,
    9343             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9344             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR256RegClassID,
    9345             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR256RegClassID,
    9346             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR256RegClassID,
    9347             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9348             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9349             :         // MIs[1] Operand 1
    9350             :         // No operand predicates
    9351             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9352             :         // (intrinsic_wo_chain:{ *:[v16i16] } 5507:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)  =>  (VMPSADBWYrri:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (imm:{ *:[i8] }):$src3)
    9353             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::VMPSADBWYrri,
    9354             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9355             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9356             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9357             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src3
    9358             :         GIR_EraseFromParent, /*InsnID*/0,
    9359             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9360             :         // GIR_Coverage, 2535,
    9361             :         GIR_Done,
    9362             :       // Label 688: @20652
    9363             :       GIM_Try, /*On fail goto*//*Label 689*/ 20720, // Rule ID 2537 //
    9364             :         GIM_CheckFeatures, GIFBS_UseSSE41,
    9365             :         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::x86_sse41_mpsadbw,
    9366             :         GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
    9367             :         GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
    9368             :         GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
    9369             :         GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s8,
    9370             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/X86::VR128RegClassID,
    9371             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/X86::VR128RegClassID,
    9372             :         GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/X86::VR128RegClassID,
    9373             :         GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
    9374             :         GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
    9375             :         // MIs[1] Operand 1
    9376             :         // No operand predicates
    9377             :         GIM_CheckIsSafeToFold, /*InsnID*/1,
    9378             :         // (intrinsic_wo_chain:{ *:[v8i16] } 6494:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)  =>  (MPSADBWrri:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (imm:{ *:[i8] }):$src3)
    9379             :         GIR_BuildMI, /*InsnID*/0, /*Opcode*/X86::MPSADBWrri,
    9380             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
    9381             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
    9382             :         GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src2
    9383             :         GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // src3
    9384             :         GIR_EraseFromParent, /*InsnID*/0,
    9385             :         GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
    9386             :         // GIR_Coverage, 2537,
    9387             :         GIR_Done,
    9388             :       // Label 689: @20720
    9389             :       GIM_Try, /*On fail goto*//*Label 690*/ 20788, // Rule ID 2539 //
    9390             :         GIM_CheckFeatures