#ifdef GET_GLOBALISEL_PREDICATE_BITSET
const unsigned MAX_SUBTARGET_PREDICATES = …;
PredicateBitset;
#endif
#ifdef GET_GLOBALISEL_TEMPORARIES_DECL
mutable MatcherState State;
typedef ComplexRendererFns(ARMInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
typedef void(ARMInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
static ARMInstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[];
static ARMInstructionSelector::CustomRendererFn CustomRenderers[];
bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
const uint8_t *getMatchTable() const override;
bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
bool testSimplePredicate(unsigned PredicateID) const override;
bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
#endif
#ifdef GET_GLOBALISEL_TEMPORARIES_INIT
, State(0),
ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
#endif
#ifdef GET_GLOBALISEL_IMPL
enum {
GILLT_s16,
GILLT_s32,
GILLT_s64,
GILLT_v2s1,
GILLT_v2s32,
GILLT_v2s64,
GILLT_v4s1,
GILLT_v4s16,
GILLT_v4s32,
GILLT_v4s64,
GILLT_v8s1,
GILLT_v8s8,
GILLT_v8s16,
GILLT_v8s64,
GILLT_v16s1,
GILLT_v16s8,
};
const static size_t NumTypeObjects = 16;
const static LLT TypeObjects[] = {
LLT::scalar(16),
LLT::scalar(32),
LLT::scalar(64),
LLT::vector(ElementCount::getFixed(2), 1),
LLT::vector(ElementCount::getFixed(2), 32),
LLT::vector(ElementCount::getFixed(2), 64),
LLT::vector(ElementCount::getFixed(4), 1),
LLT::vector(ElementCount::getFixed(4), 16),
LLT::vector(ElementCount::getFixed(4), 32),
LLT::vector(ElementCount::getFixed(4), 64),
LLT::vector(ElementCount::getFixed(8), 1),
LLT::vector(ElementCount::getFixed(8), 8),
LLT::vector(ElementCount::getFixed(8), 16),
LLT::vector(ElementCount::getFixed(8), 64),
LLT::vector(ElementCount::getFixed(16), 1),
LLT::vector(ElementCount::getFixed(16), 8),
};
enum SubtargetFeatureBits : uint8_t {
Feature_NoHonorSignDependentRoundingBit = 78,
Feature_HasV4TBit = 6,
Feature_NoV4TBit = 7,
Feature_HasV5TBit = 13,
Feature_NoV5TBit = 67,
Feature_HasV5TEBit = 11,
Feature_HasV6Bit = 0,
Feature_NoV6Bit = 9,
Feature_HasV6MBit = 28,
Feature_HasV8MBaselineBit = 35,
Feature_HasV8_1MMainlineBit = 41,
Feature_HasMVEIntBit = 65,
Feature_HasMVEFloatBit = 66,
Feature_HasCDEBit = 86,
Feature_HasFPRegsBit = 42,
Feature_HasFPRegs16Bit = 43,
Feature_HasNoFPRegs16Bit = 77,
Feature_HasFPRegs64Bit = 52,
Feature_HasV6T2Bit = 8,
Feature_HasV6KBit = 18,
Feature_HasV7Bit = 3,
Feature_HasV8Bit = 56,
Feature_PreV8Bit = 19,
Feature_HasV8_1aBit = 80,
Feature_HasV8_3aBit = 81,
Feature_NoVFPBit = 22,
Feature_HasVFP2Bit = 21,
Feature_HasVFP3Bit = 53,
Feature_HasVFP4Bit = 50,
Feature_HasDPVFPBit = 44,
Feature_HasFPARMv8Bit = 47,
Feature_HasNEONBit = 54,
Feature_HasSHA2Bit = 63,
Feature_HasAESBit = 55,
Feature_HasDotProdBit = 57,
Feature_HasCRCBit = 14,
Feature_HasLOBBit = 40,
Feature_HasFP16Bit = 62,
Feature_HasFullFP16Bit = 46,
Feature_HasBF16Bit = 64,
Feature_HasMatMulInt8Bit = 58,
Feature_HasDivideInThumbBit = 37,
Feature_HasDivideInARMBit = 12,
Feature_HasDSPBit = 36,
Feature_HasDBBit = 15,
Feature_HasV7ClrexBit = 17,
Feature_HasAcquireReleaseBit = 16,
Feature_HasMPBit = 2,
Feature_Has8MSecExtBit = 29,
Feature_HasZCZBit = 59,
Feature_UseNEONForFPBit = 84,
Feature_DontUseNEONForFPBit = 45,
Feature_IsThumbBit = 26,
Feature_IsThumb1OnlyBit = 27,
Feature_IsThumb2Bit = 34,
Feature_IsNotMClassBit = 38,
Feature_IsARMBit = 1,
Feature_IsWindowsBit = 30,
Feature_IsNotWindowsBit = 31,
Feature_IsReadTPTPIDRURWBit = 70,
Feature_IsReadTPTPIDRUROBit = 71,
Feature_IsReadTPTPIDRPRWBit = 72,
Feature_IsReadTPSoftBit = 20,
Feature_UseNaClTrapBit = 4,
Feature_DontUseNaClTrapBit = 5,
Feature_UseMovtBit = 39,
Feature_DontUseMovtBit = 23,
Feature_UseMovtInPicBit = 24,
Feature_DontUseMovtInPicBit = 25,
Feature_UseFPVMLxBit = 49,
Feature_SLSBLRMitigationBit = 69,
Feature_NoSLSBLRMitigationBit = 68,
Feature_UseMulOpsBit = 10,
Feature_UseFusedMACBit = 51,
Feature_HasFastVGETLNi32Bit = 60,
Feature_HasSlowVGETLNi32Bit = 82,
Feature_HasFastVDUP32Bit = 61,
Feature_HasSlowVDUP32Bit = 83,
Feature_UseVMOVSRBit = 48,
Feature_DontUseVMOVSRBit = 85,
Feature_IsLEBit = 76,
Feature_IsBEBit = 79,
Feature_GenExecuteOnlyBit = 33,
Feature_DontGenExecuteOnlyBit = 32,
Feature_GenT1ExecuteOnlyBit = 75,
Feature_SignRetAddrBit = 74,
Feature_NoSignRetAddrBit = 73,
};
PredicateBitset ARMInstructionSelector::
computeAvailableModuleFeatures(const ARMSubtarget *Subtarget) const {
PredicateBitset Features{};
if (!TM.Options.HonorSignDependentRoundingFPMath())
Features.set(Feature_NoHonorSignDependentRoundingBit);
if (Subtarget->hasV4TOps())
Features.set(Feature_HasV4TBit);
if (!Subtarget->hasV4TOps())
Features.set(Feature_NoV4TBit);
if (Subtarget->hasV5TOps())
Features.set(Feature_HasV5TBit);
if (!Subtarget->hasV5TOps())
Features.set(Feature_NoV5TBit);
if (Subtarget->hasV5TEOps())
Features.set(Feature_HasV5TEBit);
if (Subtarget->hasV6Ops())
Features.set(Feature_HasV6Bit);
if (!Subtarget->hasV6Ops())
Features.set(Feature_NoV6Bit);
if (Subtarget->hasV6MOps())
Features.set(Feature_HasV6MBit);
if (Subtarget->hasV8MBaselineOps())
Features.set(Feature_HasV8MBaselineBit);
if (Subtarget->hasV8_1MMainlineOps())
Features.set(Feature_HasV8_1MMainlineBit);
if (Subtarget->hasMVEIntegerOps())
Features.set(Feature_HasMVEIntBit);
if (Subtarget->hasMVEFloatOps())
Features.set(Feature_HasMVEFloatBit);
if (Subtarget->hasCDEOps())
Features.set(Feature_HasCDEBit);
if (Subtarget->hasFPRegs())
Features.set(Feature_HasFPRegsBit);
if (Subtarget->hasFPRegs16())
Features.set(Feature_HasFPRegs16Bit);
if (!Subtarget->hasFPRegs16())
Features.set(Feature_HasNoFPRegs16Bit);
if (Subtarget->hasFPRegs64())
Features.set(Feature_HasFPRegs64Bit);
if (Subtarget->hasV6T2Ops())
Features.set(Feature_HasV6T2Bit);
if (Subtarget->hasV6KOps())
Features.set(Feature_HasV6KBit);
if (Subtarget->hasV7Ops())
Features.set(Feature_HasV7Bit);
if (Subtarget->hasV8Ops())
Features.set(Feature_HasV8Bit);
if (!Subtarget->hasV8Ops())
Features.set(Feature_PreV8Bit);
if (Subtarget->hasV8_1aOps())
Features.set(Feature_HasV8_1aBit);
if (Subtarget->hasV8_3aOps())
Features.set(Feature_HasV8_3aBit);
if (!Subtarget->hasVFP2Base())
Features.set(Feature_NoVFPBit);
if (Subtarget->hasVFP2Base())
Features.set(Feature_HasVFP2Bit);
if (Subtarget->hasVFP3Base())
Features.set(Feature_HasVFP3Bit);
if (Subtarget->hasVFP4Base())
Features.set(Feature_HasVFP4Bit);
if (Subtarget->hasFP64())
Features.set(Feature_HasDPVFPBit);
if (Subtarget->hasFPARMv8Base())
Features.set(Feature_HasFPARMv8Bit);
if (Subtarget->hasNEON())
Features.set(Feature_HasNEONBit);
if (Subtarget->hasSHA2())
Features.set(Feature_HasSHA2Bit);
if (Subtarget->hasAES())
Features.set(Feature_HasAESBit);
if (Subtarget->hasDotProd())
Features.set(Feature_HasDotProdBit);
if (Subtarget->hasCRC())
Features.set(Feature_HasCRCBit);
if (Subtarget->hasLOB())
Features.set(Feature_HasLOBBit);
if (Subtarget->hasFP16())
Features.set(Feature_HasFP16Bit);
if (Subtarget->hasFullFP16())
Features.set(Feature_HasFullFP16Bit);
if (Subtarget->hasBF16())
Features.set(Feature_HasBF16Bit);
if (Subtarget->hasMatMulInt8())
Features.set(Feature_HasMatMulInt8Bit);
if (Subtarget->hasDivideInThumbMode())
Features.set(Feature_HasDivideInThumbBit);
if (Subtarget->hasDivideInARMMode())
Features.set(Feature_HasDivideInARMBit);
if (Subtarget->hasDSP())
Features.set(Feature_HasDSPBit);
if (Subtarget->hasDataBarrier())
Features.set(Feature_HasDBBit);
if (Subtarget->hasV7Clrex())
Features.set(Feature_HasV7ClrexBit);
if (Subtarget->hasAcquireRelease())
Features.set(Feature_HasAcquireReleaseBit);
if (Subtarget->hasMPExtension())
Features.set(Feature_HasMPBit);
if (Subtarget->has8MSecExt())
Features.set(Feature_Has8MSecExtBit);
if (Subtarget->hasZeroCycleZeroing())
Features.set(Feature_HasZCZBit);
if (Subtarget->useNEONForSinglePrecisionFP())
Features.set(Feature_UseNEONForFPBit);
if (!Subtarget->useNEONForSinglePrecisionFP())
Features.set(Feature_DontUseNEONForFPBit);
if (Subtarget->isThumb())
Features.set(Feature_IsThumbBit);
if (Subtarget->isThumb1Only())
Features.set(Feature_IsThumb1OnlyBit);
if (Subtarget->isThumb2())
Features.set(Feature_IsThumb2Bit);
if (!Subtarget->isMClass())
Features.set(Feature_IsNotMClassBit);
if (!Subtarget->isThumb())
Features.set(Feature_IsARMBit);
if (Subtarget->isTargetWindows())
Features.set(Feature_IsWindowsBit);
if (!Subtarget->isTargetWindows())
Features.set(Feature_IsNotWindowsBit);
if (Subtarget->isReadTPTPIDRURW())
Features.set(Feature_IsReadTPTPIDRURWBit);
if (Subtarget->isReadTPTPIDRURO())
Features.set(Feature_IsReadTPTPIDRUROBit);
if (Subtarget->isReadTPTPIDRPRW())
Features.set(Feature_IsReadTPTPIDRPRWBit);
if (Subtarget->isReadTPSoft())
Features.set(Feature_IsReadTPSoftBit);
if (Subtarget->useNaClTrap())
Features.set(Feature_UseNaClTrapBit);
if (!Subtarget->useNaClTrap())
Features.set(Feature_DontUseNaClTrapBit);
if (Subtarget->useMulOps())
Features.set(Feature_UseMulOpsBit);
if (TM.Options.AllowFPOpFusion == FPOpFusion::Fast && Subtarget->useFPVFMx())
Features.set(Feature_UseFusedMACBit);
if (!Subtarget->hasSlowVGETLNi32())
Features.set(Feature_HasFastVGETLNi32Bit);
if (Subtarget->hasSlowVGETLNi32())
Features.set(Feature_HasSlowVGETLNi32Bit);
if (!Subtarget->hasSlowVDUP32())
Features.set(Feature_HasFastVDUP32Bit);
if (Subtarget->hasSlowVDUP32())
Features.set(Feature_HasSlowVDUP32Bit);
if (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP())
Features.set(Feature_UseVMOVSRBit);
if (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP())
Features.set(Feature_DontUseVMOVSRBit);
if (Subtarget->genExecuteOnly())
Features.set(Feature_GenExecuteOnlyBit);
if (!Subtarget->genExecuteOnly())
Features.set(Feature_DontGenExecuteOnlyBit);
if (Subtarget->genExecuteOnly() && Subtarget->isThumb1Only() && !Subtarget->hasV8MBaselineOps())
Features.set(Feature_GenT1ExecuteOnlyBit);
return Features;
}
void ARMInstructionSelector::setupGeneratedPerFunctionState(MachineFunction &MF) {
AvailableFunctionFeatures = computeAvailableFunctionFeatures((const ARMSubtarget *)&MF.getSubtarget(), &MF);
}
PredicateBitset ARMInstructionSelector::
computeAvailableFunctionFeatures(const ARMSubtarget *Subtarget, const MachineFunction *MF) const {
PredicateBitset Features{};
if (Subtarget->useMovt())
Features.set(Feature_UseMovtBit);
if (!Subtarget->useMovt())
Features.set(Feature_DontUseMovtBit);
if (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt())
Features.set(Feature_UseMovtInPicBit);
if (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt())
Features.set(Feature_DontUseMovtInPicBit);
if (((Subtarget->useFPVMLx() && TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
Features.set(Feature_UseFPVMLxBit);
if ( MF->getSubtarget<ARMSubtarget>().hardenSlsBlr() )
Features.set(Feature_SLSBLRMitigationBit);
if ( !MF->getSubtarget<ARMSubtarget>().hardenSlsBlr() )
Features.set(Feature_NoSLSBLRMitigationBit);
if (MF->getDataLayout().isLittleEndian())
Features.set(Feature_IsLEBit);
if (MF->getDataLayout().isBigEndian())
Features.set(Feature_IsBEBit);
if ( MF->getInfo<ARMFunctionInfo>()->shouldSignReturnAddress(true) )
Features.set(Feature_SignRetAddrBit);
if ( !MF->getInfo<ARMFunctionInfo>()->shouldSignReturnAddress(true) )
Features.set(Feature_NoSignRetAddrBit);
return Features;
}
enum {
GIFBS_Invalid,
GIFBS_HasDotProd,
GIFBS_HasFP16,
GIFBS_HasFPARMv8,
GIFBS_HasFPRegs,
GIFBS_HasFullFP16,
GIFBS_HasMVEFloat,
GIFBS_HasMVEInt,
GIFBS_HasMatMulInt8,
GIFBS_HasNEON,
GIFBS_HasVFP2,
GIFBS_HasVFP3,
GIFBS_HasVFP4,
GIFBS_IsARM,
GIFBS_IsThumb,
GIFBS_IsThumb2,
GIFBS_NoHonorSignDependentRounding,
GIFBS_DontUseNEONForFP_HasVFP2,
GIFBS_DontUseNaClTrap_IsARM,
GIFBS_DontUseVMOVSR_HasNEON,
GIFBS_Has8MSecExt_IsThumb,
GIFBS_HasAES_HasV8,
GIFBS_HasBF16_HasNEON,
GIFBS_HasCRC_IsARM,
GIFBS_HasCRC_IsThumb2,
GIFBS_HasDB_IsARM,
GIFBS_HasDB_IsThumb,
GIFBS_HasDPVFP_HasFPARMv8,
GIFBS_HasDPVFP_HasVFP2,
GIFBS_HasDPVFP_HasVFP3,
GIFBS_HasDPVFP_HasVFP4,
GIFBS_HasDPVFP_NoHonorSignDependentRounding,
GIFBS_HasDSP_IsThumb2,
GIFBS_HasDivideInARM_IsARM,
GIFBS_HasFP16_HasNEON,
GIFBS_HasFPARMv8_HasNEON,
GIFBS_HasFPRegs_HasFastVGETLNi32,
GIFBS_HasFPRegs_UseVMOVSR,
GIFBS_HasFullFP16_HasNEON,
GIFBS_HasMVEInt_HasV8_1MMainline,
GIFBS_HasMVEInt_IsBE,
GIFBS_HasMVEInt_IsLE,
GIFBS_HasNEON_HasV8,
GIFBS_HasNEON_HasV8_1a,
GIFBS_HasNEON_HasV8_3a,
GIFBS_HasNEON_HasVFP4,
GIFBS_HasNEON_IsBE,
GIFBS_HasNEON_IsLE,
GIFBS_HasNEON_UseNEONForFP,
GIFBS_HasSHA2_HasV8,
GIFBS_HasV5T_IsARM,
GIFBS_HasV5T_IsThumb,
GIFBS_HasV5TE_IsARM,
GIFBS_HasV6_IsARM,
GIFBS_HasV6K_IsARM,
GIFBS_HasV6M_IsThumb,
GIFBS_HasV6T2_IsARM,
GIFBS_HasV7_IsARM,
GIFBS_HasV7Clrex_IsThumb,
GIFBS_HasV8MBaseline_IsThumb,
GIFBS_IsARM_NoV5T,
GIFBS_IsARM_NoV6,
GIFBS_IsARM_PreV8,
GIFBS_IsARM_UseNaClTrap,
GIFBS_IsThumb_IsThumb1Only,
GIFBS_IsThumb_IsWindows,
GIFBS_IsThumb_NoV5T,
GIFBS_IsThumb_UseMovt,
GIFBS_IsThumb2_PreV8,
GIFBS_IsThumb2_UseMulOps,
GIFBS_DontUseMovt_GenExecuteOnly_IsThumb1Only,
GIFBS_HasDSP_IsThumb2_UseMulOps,
GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb,
GIFBS_HasFPARMv8_HasFullFP16_HasNEON,
GIFBS_HasFullFP16_HasNEON_HasV8,
GIFBS_HasFullFP16_HasNEON_HasV8_3a,
GIFBS_HasFullFP16_HasNEON_UseFPVMLx,
GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
GIFBS_HasLOB_HasV8_1MMainline_IsThumb2,
GIFBS_HasNEON_UseFPVMLx_UseNEONForFP,
GIFBS_HasV5TE_IsARM_UseMulOps,
GIFBS_HasV6_IsARM_UseMulOps,
GIFBS_HasV6_IsThumb_IsThumb1Only,
GIFBS_HasV6T2_IsARM_UseMulOps,
GIFBS_HasVFP4_UseFusedMAC_UseNEONForFP,
GIFBS_IsARM_NoV6_UseMulOps,
};
constexpr static PredicateBitset FeatureBitsets[] {
{},
{Feature_HasDotProdBit, },
{Feature_HasFP16Bit, },
{Feature_HasFPARMv8Bit, },
{Feature_HasFPRegsBit, },
{Feature_HasFullFP16Bit, },
{Feature_HasMVEFloatBit, },
{Feature_HasMVEIntBit, },
{Feature_HasMatMulInt8Bit, },
{Feature_HasNEONBit, },
{Feature_HasVFP2Bit, },
{Feature_HasVFP3Bit, },
{Feature_HasVFP4Bit, },
{Feature_IsARMBit, },
{Feature_IsThumbBit, },
{Feature_IsThumb2Bit, },
{Feature_NoHonorSignDependentRoundingBit, },
{Feature_DontUseNEONForFPBit, Feature_HasVFP2Bit, },
{Feature_DontUseNaClTrapBit, Feature_IsARMBit, },
{Feature_DontUseVMOVSRBit, Feature_HasNEONBit, },
{Feature_Has8MSecExtBit, Feature_IsThumbBit, },
{Feature_HasAESBit, Feature_HasV8Bit, },
{Feature_HasBF16Bit, Feature_HasNEONBit, },
{Feature_HasCRCBit, Feature_IsARMBit, },
{Feature_HasCRCBit, Feature_IsThumb2Bit, },
{Feature_HasDBBit, Feature_IsARMBit, },
{Feature_HasDBBit, Feature_IsThumbBit, },
{Feature_HasDPVFPBit, Feature_HasFPARMv8Bit, },
{Feature_HasDPVFPBit, Feature_HasVFP2Bit, },
{Feature_HasDPVFPBit, Feature_HasVFP3Bit, },
{Feature_HasDPVFPBit, Feature_HasVFP4Bit, },
{Feature_HasDPVFPBit, Feature_NoHonorSignDependentRoundingBit, },
{Feature_HasDSPBit, Feature_IsThumb2Bit, },
{Feature_HasDivideInARMBit, Feature_IsARMBit, },
{Feature_HasFP16Bit, Feature_HasNEONBit, },
{Feature_HasFPARMv8Bit, Feature_HasNEONBit, },
{Feature_HasFPRegsBit, Feature_HasFastVGETLNi32Bit, },
{Feature_HasFPRegsBit, Feature_UseVMOVSRBit, },
{Feature_HasFullFP16Bit, Feature_HasNEONBit, },
{Feature_HasMVEIntBit, Feature_HasV8_1MMainlineBit, },
{Feature_HasMVEIntBit, Feature_IsBEBit, },
{Feature_HasMVEIntBit, Feature_IsLEBit, },
{Feature_HasNEONBit, Feature_HasV8Bit, },
{Feature_HasNEONBit, Feature_HasV8_1aBit, },
{Feature_HasNEONBit, Feature_HasV8_3aBit, },
{Feature_HasNEONBit, Feature_HasVFP4Bit, },
{Feature_HasNEONBit, Feature_IsBEBit, },
{Feature_HasNEONBit, Feature_IsLEBit, },
{Feature_HasNEONBit, Feature_UseNEONForFPBit, },
{Feature_HasSHA2Bit, Feature_HasV8Bit, },
{Feature_HasV5TBit, Feature_IsARMBit, },
{Feature_HasV5TBit, Feature_IsThumbBit, },
{Feature_HasV5TEBit, Feature_IsARMBit, },
{Feature_HasV6Bit, Feature_IsARMBit, },
{Feature_HasV6KBit, Feature_IsARMBit, },
{Feature_HasV6MBit, Feature_IsThumbBit, },
{Feature_HasV6T2Bit, Feature_IsARMBit, },
{Feature_HasV7Bit, Feature_IsARMBit, },
{Feature_HasV7ClrexBit, Feature_IsThumbBit, },
{Feature_HasV8MBaselineBit, Feature_IsThumbBit, },
{Feature_IsARMBit, Feature_NoV5TBit, },
{Feature_IsARMBit, Feature_NoV6Bit, },
{Feature_IsARMBit, Feature_PreV8Bit, },
{Feature_IsARMBit, Feature_UseNaClTrapBit, },
{Feature_IsThumbBit, Feature_IsThumb1OnlyBit, },
{Feature_IsThumbBit, Feature_IsWindowsBit, },
{Feature_IsThumbBit, Feature_NoV5TBit, },
{Feature_IsThumbBit, Feature_UseMovtBit, },
{Feature_IsThumb2Bit, Feature_PreV8Bit, },
{Feature_IsThumb2Bit, Feature_UseMulOpsBit, },
{Feature_DontUseMovtBit, Feature_GenExecuteOnlyBit, Feature_IsThumb1OnlyBit, },
{Feature_HasDSPBit, Feature_IsThumb2Bit, Feature_UseMulOpsBit, },
{Feature_HasDivideInThumbBit, Feature_HasV8MBaselineBit, Feature_IsThumbBit, },
{Feature_HasFPARMv8Bit, Feature_HasFullFP16Bit, Feature_HasNEONBit, },
{Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_HasV8Bit, },
{Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_HasV8_3aBit, },
{Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_UseFPVMLxBit, },
{Feature_HasFullFP16Bit, Feature_HasNEONBit, Feature_UseFusedMACBit, },
{Feature_HasLOBBit, Feature_HasV8_1MMainlineBit, Feature_IsThumb2Bit, },
{Feature_HasNEONBit, Feature_UseFPVMLxBit, Feature_UseNEONForFPBit, },
{Feature_HasV5TEBit, Feature_IsARMBit, Feature_UseMulOpsBit, },
{Feature_HasV6Bit, Feature_IsARMBit, Feature_UseMulOpsBit, },
{Feature_HasV6Bit, Feature_IsThumbBit, Feature_IsThumb1OnlyBit, },
{Feature_HasV6T2Bit, Feature_IsARMBit, Feature_UseMulOpsBit, },
{Feature_HasVFP4Bit, Feature_UseFusedMACBit, Feature_UseNEONForFPBit, },
{Feature_IsARMBit, Feature_NoV6Bit, Feature_UseMulOpsBit, },
};
enum {
GICP_Invalid,
};
ARMInstructionSelector::ComplexMatcherMemFn
ARMInstructionSelector::ComplexPredicateFns[] = {
nullptr,
};
enum {
GICXXPred_MI_Predicate_bf_inv_mask_imm = GICXXPred_Invalid + 1,
GICXXPred_MI_Predicate_vfp_f32imm,
GICXXPred_MI_Predicate_vfp_f64imm,
};
bool ARMInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
const MachineFunction &MF = *MI.getParent()->getParent();
const MachineRegisterInfo &MRI = MF.getRegInfo();
const auto &Operands = State.RecordedOperands;
(void)Operands;
(void)MRI;
switch (PredicateID) {
case GICXXPred_MI_Predicate_bf_inv_mask_imm: {
const auto &MO = MI.getOperand(1);
if (!MO.isCImm())
return false;
return ARM::isBitFieldInvertedMask(MO.getCImm()->getZExtValue());
llvm_unreachable("bf_inv_mask_imm should have returned");
}
case GICXXPred_MI_Predicate_vfp_f32imm: {
const auto &MO = MI.getOperand(1);
if (!MO.isFPImm())
return false;
return ARM_AM::getFP32Imm(MO.getFPImm()->getValueAPF()) != -1;
llvm_unreachable("vfp_f32imm should have returned");
}
case GICXXPred_MI_Predicate_vfp_f64imm: {
const auto &MO = MI.getOperand(1);
if (!MO.isFPImm())
return false;
return ARM_AM::getFP64Imm(MO.getFPImm()->getValueAPF()) != -1;
llvm_unreachable("vfp_f64imm should have returned");
}
}
llvm_unreachable("Unknown predicate");
return false;
}
enum {
GICXXPred_I64_Predicate_VectorIndex8 = GICXXPred_Invalid + 1,
GICXXPred_I64_Predicate_VectorIndex16,
GICXXPred_I64_Predicate_VectorIndex32,
GICXXPred_I64_Predicate_VectorIndex64,
GICXXPred_I64_Predicate_asr_imm,
GICXXPred_I64_Predicate_imm0_7,
GICXXPred_I64_Predicate_imm0_15,
GICXXPred_I64_Predicate_imm0_31,
GICXXPred_I64_Predicate_imm0_32,
GICXXPred_I64_Predicate_imm0_63,
GICXXPred_I64_Predicate_imm0_239,
GICXXPred_I64_Predicate_imm0_255,
GICXXPred_I64_Predicate_imm0_255_expr,
GICXXPred_I64_Predicate_imm0_4095,
GICXXPred_I64_Predicate_imm0_65535,
GICXXPred_I64_Predicate_imm0_65535_expr,
GICXXPred_I64_Predicate_imm0_65535_neg,
GICXXPred_I64_Predicate_imm1_7,
GICXXPred_I64_Predicate_imm1_15,
GICXXPred_I64_Predicate_imm1_16,
GICXXPred_I64_Predicate_imm1_31,
GICXXPred_I64_Predicate_imm8,
GICXXPred_I64_Predicate_imm8_255,
GICXXPred_I64_Predicate_imm8_or_16,
GICXXPred_I64_Predicate_imm16,
GICXXPred_I64_Predicate_imm16_31,
GICXXPred_I64_Predicate_imm24b,
GICXXPred_I64_Predicate_imm32,
GICXXPred_I64_Predicate_imm256_510,
GICXXPred_I64_Predicate_imm_3b,
GICXXPred_I64_Predicate_imm_4b,
GICXXPred_I64_Predicate_imm_6b,
GICXXPred_I64_Predicate_imm_7b,
GICXXPred_I64_Predicate_imm_9b,
GICXXPred_I64_Predicate_imm_11b,
GICXXPred_I64_Predicate_imm_12b,
GICXXPred_I64_Predicate_imm_13b,
GICXXPred_I64_Predicate_imm_even,
GICXXPred_I64_Predicate_imm_odd,
GICXXPred_I64_Predicate_long_shift,
GICXXPred_I64_Predicate_mod_imm,
GICXXPred_I64_Predicate_mod_imm_not,
GICXXPred_I64_Predicate_pkh_asr_amt,
GICXXPred_I64_Predicate_pkh_lsl_amt,
GICXXPred_I64_Predicate_shr_imm8,
GICXXPred_I64_Predicate_shr_imm16,
GICXXPred_I64_Predicate_shr_imm32,
GICXXPred_I64_Predicate_shr_imm64,
GICXXPred_I64_Predicate_t2_so_imm,
GICXXPred_I64_Predicate_t2_so_imm_neg,
};
bool ARMInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
switch (PredicateID) {
case GICXXPred_I64_Predicate_VectorIndex8: {
return ((uint64_t)Imm) < 8;
}
case GICXXPred_I64_Predicate_VectorIndex16: {
return ((uint64_t)Imm) < 4;
}
case GICXXPred_I64_Predicate_VectorIndex32: {
return ((uint64_t)Imm) < 2;
}
case GICXXPred_I64_Predicate_VectorIndex64: {
return ((uint64_t)Imm) < 1;
}
case GICXXPred_I64_Predicate_asr_imm: {
return Imm > 0 && Imm <= 32;
}
case GICXXPred_I64_Predicate_imm0_7: {
return Imm >= 0 && Imm < 8;
}
case GICXXPred_I64_Predicate_imm0_15: {
return Imm >= 0 && Imm < 16;
}
case GICXXPred_I64_Predicate_imm0_31: {
return Imm >= 0 && Imm < 32;
}
case GICXXPred_I64_Predicate_imm0_32: {
return Imm >= 0 && Imm < 33;
}
case GICXXPred_I64_Predicate_imm0_63: {
return Imm >= 0 && Imm < 64;
}
case GICXXPred_I64_Predicate_imm0_239: {
return Imm >= 0 && Imm < 240;
}
case GICXXPred_I64_Predicate_imm0_255: {
return Imm >= 0 && Imm < 256;
}
case GICXXPred_I64_Predicate_imm0_255_expr: {
return Imm >= 0 && Imm < 256;
}
case GICXXPred_I64_Predicate_imm0_4095: {
return Imm >= 0 && Imm < 4096;
}
case GICXXPred_I64_Predicate_imm0_65535: {
return Imm >= 0 && Imm < 65536;
}
case GICXXPred_I64_Predicate_imm0_65535_expr: {
return Imm >= 0 && Imm < 65536;
}
case GICXXPred_I64_Predicate_imm0_65535_neg: {
return -Imm >= 0 && -Imm < 65536;
}
case GICXXPred_I64_Predicate_imm1_7: {
return Imm > 0 && Imm < 8;
}
case GICXXPred_I64_Predicate_imm1_15: {
return Imm > 0 && Imm < 16;
}
case GICXXPred_I64_Predicate_imm1_16: {
return Imm > 0 && Imm <= 16;
}
case GICXXPred_I64_Predicate_imm1_31: {
return Imm > 0 && Imm < 32;
}
case GICXXPred_I64_Predicate_imm8: {
return Imm == 8;
}
case GICXXPred_I64_Predicate_imm8_255: {
return Imm >= 8 && Imm < 256;
}
case GICXXPred_I64_Predicate_imm8_or_16: {
return Imm == 8 || Imm == 16;
}
case GICXXPred_I64_Predicate_imm16: {
return Imm == 16;
}
case GICXXPred_I64_Predicate_imm16_31: {
return (int32_t)Imm >= 16 && (int32_t)Imm < 32;
}
case GICXXPred_I64_Predicate_imm24b: {
return Imm >= 0 && Imm <= 0xffffff;
}
case GICXXPred_I64_Predicate_imm32: {
return Imm == 32;
}
case GICXXPred_I64_Predicate_imm256_510: {
return Imm >= 256 && Imm < 511;
}
case GICXXPred_I64_Predicate_imm_3b: {
{ return Imm >= 0 && Imm < (1 << 3); }
llvm_unreachable("imm_3b should have returned");
}
case GICXXPred_I64_Predicate_imm_4b: {
{ return Imm >= 0 && Imm < (1 << 4); }
llvm_unreachable("imm_4b should have returned");
}
case GICXXPred_I64_Predicate_imm_6b: {
{ return Imm >= 0 && Imm < (1 << 6); }
llvm_unreachable("imm_6b should have returned");
}
case GICXXPred_I64_Predicate_imm_7b: {
{ return Imm >= 0 && Imm < (1 << 7); }
llvm_unreachable("imm_7b should have returned");
}
case GICXXPred_I64_Predicate_imm_9b: {
{ return Imm >= 0 && Imm < (1 << 9); }
llvm_unreachable("imm_9b should have returned");
}
case GICXXPred_I64_Predicate_imm_11b: {
{ return Imm >= 0 && Imm < (1 << 11); }
llvm_unreachable("imm_11b should have returned");
}
case GICXXPred_I64_Predicate_imm_12b: {
{ return Imm >= 0 && Imm < (1 << 12); }
llvm_unreachable("imm_12b should have returned");
}
case GICXXPred_I64_Predicate_imm_13b: {
{ return Imm >= 0 && Imm < (1 << 13); }
llvm_unreachable("imm_13b should have returned");
}
case GICXXPred_I64_Predicate_imm_even: {
return (Imm & 1) == 0;
}
case GICXXPred_I64_Predicate_imm_odd: {
return (Imm & 1) == 1;
}
case GICXXPred_I64_Predicate_long_shift: {
return Imm > 0 && Imm <= 32;
}
case GICXXPred_I64_Predicate_mod_imm: {
return ARM_AM::getSOImmVal(Imm) != -1;
}
case GICXXPred_I64_Predicate_mod_imm_not: {
return ARM_AM::getSOImmVal(~(uint32_t)Imm) != -1;
}
case GICXXPred_I64_Predicate_pkh_asr_amt: {
return Imm > 0 && Imm <= 32;
}
case GICXXPred_I64_Predicate_pkh_lsl_amt: {
return Imm >= 0 && Imm < 32;
}
case GICXXPred_I64_Predicate_shr_imm8: {
return Imm > 0 && Imm <= 8;
}
case GICXXPred_I64_Predicate_shr_imm16: {
return Imm > 0 && Imm <= 16;
}
case GICXXPred_I64_Predicate_shr_imm32: {
return Imm > 0 && Imm <= 32;
}
case GICXXPred_I64_Predicate_shr_imm64: {
return Imm > 0 && Imm <= 64;
}
case GICXXPred_I64_Predicate_t2_so_imm: {
return ARM_AM::getT2SOImmVal(Imm) != -1;
}
case GICXXPred_I64_Predicate_t2_so_imm_neg: {
return Imm && ARM_AM::getT2SOImmVal(-(uint32_t)Imm) != -1;
}
}
llvm_unreachable("Unknown predicate");
return false;
}
bool ARMInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
llvm_unreachable("Unknown predicate");
return false;
}
enum {
GICXXPred_APInt_Predicate_arm_i32imm = GICXXPred_Invalid + 1,
};
bool ARMInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
switch (PredicateID) {
case GICXXPred_APInt_Predicate_arm_i32imm: {
if (Subtarget->useMovt())
return true;
if (ARM_AM::isSOImmTwoPartVal(Imm.getZExtValue()))
return true;
return ARM_AM::isSOImmTwoPartValNeg(Imm.getZExtValue());
llvm_unreachable("arm_i32imm should have returned");
}
}
llvm_unreachable("Unknown predicate");
return false;
}
bool ARMInstructionSelector::testSimplePredicate(unsigned) const {
llvm_unreachable("ARMInstructionSelector does not support simple predicates!");
return false;
}
enum {
GICR_Invalid,
GICR_renderInvertedImm,
GICR_renderVFPF32Imm,
GICR_renderVFPF64Imm,
};
ARMInstructionSelector::CustomRendererFn
ARMInstructionSelector::CustomRenderers[] = {
nullptr,
&ARMInstructionSelector::renderInvertedImm,
&ARMInstructionSelector::renderVFPF32Imm,
&ARMInstructionSelector::renderVFPF64Imm,
};
bool ARMInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
const PredicateBitset AvailableFeatures = getAvailableFeatures();
MachineIRBuilder B(I);
State.MIs.clear();
State.MIs.push_back(&I);
if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), TII, MF->getRegInfo(), TRI, RBI, AvailableFeatures, &CoverageInfo)) {
return true;
}
return false;
}
bool ARMInstructionSelector::runCustomAction(unsigned, const MatcherState&, NewMIVector &) const {
llvm_unreachable("ARMInstructionSelector does not support custom C++ actions!");
}
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#define GIMT_Encode2 …
#define GIMT_Encode4 …
#define GIMT_Encode8 …
#else
#define GIMT_Encode2 …
#define GIMT_Encode4 …
#define GIMT_Encode8 …
#endif
const uint8_t *ARMInstructionSelector::getMatchTable() const {
constexpr static uint8_t MatchTable0[] = {
GIM_SwitchOpcode, 0, GIMT_Encode2(53), GIMT_Encode2(300), GIMT_Encode4(125459),
GIMT_Encode4(998),
GIMT_Encode4(6623),
GIMT_Encode4(9771),
GIMT_Encode4(10641),
GIMT_Encode4(10737), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(10833),
GIMT_Encode4(13793),
GIMT_Encode4(19524), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(21097), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(21523), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(31971),
GIMT_Encode4(32263), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(32522), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(32543),
GIMT_Encode4(87635), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(95297),
GIMT_Encode4(95455),
GIMT_Encode4(95613),
GIMT_Encode4(95893), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(95989), GIMT_Encode4(0),
GIMT_Encode4(96147),
GIMT_Encode4(96305),
GIMT_Encode4(96416),
GIMT_Encode4(96472), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(96701), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(96983),
GIMT_Encode4(97225),
GIMT_Encode4(97588),
GIMT_Encode4(98227),
GIMT_Encode4(99521),
GIMT_Encode4(100160), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(101174),
GIMT_Encode4(103486),
GIMT_Encode4(105150),
GIMT_Encode4(106130), GIMT_Encode4(0),
GIMT_Encode4(107945), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(108110),
GIMT_Encode4(109651),
GIMT_Encode4(109881),
GIMT_Encode4(110153),
GIMT_Encode4(111483),
GIMT_Encode4(112813),
GIMT_Encode4(113457), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(114101), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(114871),
GIMT_Encode4(115459), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(116047),
GIMT_Encode4(116763),
GIMT_Encode4(117479),
GIMT_Encode4(117512),
GIMT_Encode4(117548),
GIMT_Encode4(117613), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(117646),
GIMT_Encode4(118183),
GIMT_Encode4(118720),
GIMT_Encode4(119635),
GIMT_Encode4(120550), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(121015), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(121088),
GIMT_Encode4(121388), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(121543), GIMT_Encode4(0),
GIMT_Encode4(122098),
GIMT_Encode4(122206),
GIMT_Encode4(122492),
GIMT_Encode4(122918), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(123177),
GIMT_Encode4(123315),
GIMT_Encode4(123574),
GIMT_Encode4(123866), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(124004),
GIMT_Encode4(124050), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(124137), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(124313),
GIMT_Encode4(124593),
GIMT_Encode4(124882),
GIMT_Encode4(125163),
GIM_SwitchType, 0, 0, GIMT_Encode2(1), GIMT_Encode2(16), GIMT_Encode4(6622),
GIMT_Encode4(1069),
GIMT_Encode4(3149), GIMT_Encode4(0),
GIMT_Encode4(3196),
GIMT_Encode4(3381), GIMT_Encode4(0),
GIMT_Encode4(4092),
GIMT_Encode4(4277), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(5231),
GIMT_Encode4(5416), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(6370),
GIM_Try, GIMT_Encode4(3148),
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_Try, GIMT_Encode4(1155),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(255),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTAB),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1230),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTAH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1305),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(255),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTAB),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1380),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTAH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1455),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(255),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTAB),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1530),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTAH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1605),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(255),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTAB),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1680),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTAH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1790),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt8, 2, 2, 16,
GIM_RecordInsn, 3, 1, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt8, 3, 2, 16,
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::SMLATT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_Copy, 0, 3, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1900),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 2, 2, 16,
GIM_RecordInsn, 3, 1, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 3, 2, 16,
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SMLATT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_Copy, 0, 3, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2010),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt8, 2, 2, 16,
GIM_RecordInsn, 3, 1, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt8, 3, 2, 16,
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::SMLATT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_Copy, 0, 3, 1,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2120),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 2, 2, 16,
GIM_RecordInsn, 3, 1, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 3, 2, 16,
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SMLATT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_Copy, 0, 3, 1,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2177),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::ADDri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2234),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ADDri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2285),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_imm0_4095),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ADDri12),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2361),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::MLA),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2437),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_NoV6),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::MLAv5),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2507),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2MLA),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2577),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SMULH),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::SMMLA),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2647),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SMULH),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SMMLA),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 2,
GIR_Copy, 0, 1, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2723),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::MLA),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2799),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_NoV6),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::MLAv5),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2869),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2MLA),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2939),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SMULH),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::SMMLA),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3009),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SMULH),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SMMLA),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 2,
GIR_Copy, 0, 1, 1,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3055),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::ADDrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3101),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ADDrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3147),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ADDrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(3195),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDv1i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(3380),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_Try, GIMT_Encode4(3277),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckType, 1, 2, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv2i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3343),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckType, 1, 2, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv2i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3379),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDv2i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(4091),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckType, 2, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_Try, GIMT_Encode4(3464),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3532),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3600),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLsv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3668),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3736),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3789),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3842),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWsv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3895),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(3948),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4001),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWsv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4054),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4090),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(4276),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_Try, GIMT_Encode4(4173),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckType, 1, 2, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv4i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4239),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckType, 1, 2, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv4i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4275),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDv4i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(5230),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_Try, GIMT_Encode4(4360),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4432),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4504),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLsv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4576),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4648),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4718),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v4s32,
GIM_CheckType, 1, 2, GILLT_v4s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4775),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4832),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWsv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4889),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(4959),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v4s32,
GIM_CheckType, 1, 2, GILLT_v4s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5016),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5073),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWsv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5130),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5170),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5229),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VADDi32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(5415),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_Try, GIMT_Encode4(5312),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckType, 1, 2, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5378),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckType, 1, 2, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5414),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(6369),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_Try, GIMT_Encode4(5499),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5571),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5643),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLsv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5715),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5787),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDLuv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5857),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v8s16,
GIM_CheckType, 1, 2, GILLT_v8s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5914),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(5971),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWsv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6028),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6098),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v8s16,
GIM_CheckType, 1, 2, GILLT_v8s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6155),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6212),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWsv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6269),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDWuv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6309),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6368),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VADDi16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(6621),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckType, 2, GILLT_v16s8,
GIM_Try, GIMT_Encode4(6451),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v16s8,
GIM_CheckType, 1, 2, GILLT_v16s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv16i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6521),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v16s8,
GIM_CheckType, 1, 2, GILLT_v16s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLAv16i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6561),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VADDv16i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6620),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VADDi8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Reject,
GIM_SwitchType, 0, 0, GIMT_Encode2(1), GIMT_Encode2(16), GIMT_Encode4(9770),
GIMT_Encode4(6694),
GIMT_Encode4(7218), GIMT_Encode4(0),
GIMT_Encode4(7265),
GIMT_Encode4(7380), GIMT_Encode4(0),
GIMT_Encode4(7932),
GIMT_Encode4(8047), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(8760),
GIMT_Encode4(8875), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(9588),
GIM_Try, GIMT_Encode4(7217),
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_Try, GIMT_Encode4(6762),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::RSBri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6819),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2RSBri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6876),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::SUBri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6933),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SUBri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(6984),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_imm0_4095),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SUBri12),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7054),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6T2_IsARM_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::MLS),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7124),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2MLS),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7170),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::SUBrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7216),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SUBrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(7264),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBv1i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(7379),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_Try, GIMT_Encode4(7346),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckType, 1, 2, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLSv2i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7378),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBv2i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(7931),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckType, 2, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_Try, GIMT_Encode4(7463),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7531),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7599),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLsv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7667),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7735),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv2i64),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7788),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWuv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7841),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWsv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7894),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v2s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWuv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(7930),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBv2i64),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(8046),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_Try, GIMT_Encode4(8013),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckType, 1, 2, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLSv4i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8045),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBv4i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(8759),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_Try, GIMT_Encode4(8130),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8202),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8274),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLsv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8346),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8418),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv4i32),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8488),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v4s32,
GIM_CheckType, 1, 2, GILLT_v4s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLSv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8545),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWuv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8602),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWsv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8659),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v4s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWuv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8699),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8758),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VSUBi32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(8874),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_Try, GIMT_Encode4(8841),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckType, 1, 2, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLSv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(8873),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(9587),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_Try, GIMT_Encode4(8958),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9030),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9102),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLsv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9174),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9246),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 2, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBLuv8i16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9316),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v8s16,
GIM_CheckType, 1, 2, GILLT_v8s16,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLSv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9373),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWuv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9430),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWsv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9487),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ZEXT),
GIM_CheckType, 1, 1, GILLT_v8s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBWuv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9527),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9586),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VSUBi16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(9769),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckType, 2, GILLT_v16s8,
GIM_Try, GIMT_Encode4(9669),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_MUL),
GIM_CheckType, 1, 1, GILLT_v16s8,
GIM_CheckType, 1, 2, GILLT_v16s8,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckRegBankForClass, 1, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::VMLSv16i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 1, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9709),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VSUBv16i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(9768),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VSUBi8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Reject,
GIM_SwitchType, 0, 0, GIMT_Encode2(1), GIMT_Encode2(16), GIMT_Encode4(10640),
GIMT_Encode4(9842), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(10163), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(10210),
GIMT_Encode4(10257), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(10369),
GIMT_Encode4(10416), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(10528),
GIM_Try, GIMT_Encode4(10162),
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_Try, GIMT_Encode4(9941),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV5TE_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt8, 1, 2, 16,
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt8, 2, 2, 16,
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::SMULTT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10029),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 1, 2, 16,
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 2, 2, 16,
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SMULTT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10075),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::MUL),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10121),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM_NoV6_UseMulOps),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::MULv5),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10161),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2MUL),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(10209),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VMULv2i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(10256),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VMULv4i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(10368),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_Try, GIMT_Encode4(10308),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VMULv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10367),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VMULi32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(10415),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VMULv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(10527),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_Try, GIMT_Encode4(10467),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VMULv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10526),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VMULi16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(10639),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckType, 2, GILLT_v16s8,
GIM_Try, GIMT_Encode4(10579),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VMULv16i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10638),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VMULi8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(10736),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_Try, GIMT_Encode4(10695),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDivideInARM_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::SDIV),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10735),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2SDIV),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(10832),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_Try, GIMT_Encode4(10791),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDivideInARM_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::UDIV),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(10831),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UDIV),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_SwitchType, 0, 0, GIMT_Encode2(1), GIMT_Encode2(16), GIMT_Encode4(13792),
GIMT_Encode4(10904),
GIMT_Encode4(12708),
GIMT_Encode4(12755),
GIMT_Encode4(12867),
GIMT_Encode4(12914),
GIMT_Encode4(13026),
GIMT_Encode4(13138),
GIMT_Encode4(13185), GIMT_Encode4(0),
GIMT_Encode4(13297),
GIMT_Encode4(13409),
GIMT_Encode4(13456), GIMT_Encode4(0),
GIMT_Encode4(13568),
GIMT_Encode4(13680),
GIM_Try, GIMT_Encode4(12707),
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_Try, GIMT_Encode4(10988),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt8, 1, 2, 8,
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(16711935),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTB16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11061),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 1, 2, 8,
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(16711935),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTB16),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11109),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(255),
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTB),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11157),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(65535),
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11205),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(16711935),
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTB16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11253),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(255),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTB),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11301),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(65535),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11349),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(16711935),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTB16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11426),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckConstantInt8, 1, 1, uint8_t(-1),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11503),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckConstantInt8, 1, 1, uint8_t(-1),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11580),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11657),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11734),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckConstantInt8, 1, 1, uint8_t(-1),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11811),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckConstantInt8, 1, 1, uint8_t(-1),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11888),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(11965),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12036),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::BICrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12107),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2BICrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12178),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::BICrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12249),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2BICrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12294),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsThumb_IsThumb1Only),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::tGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::tGPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(255),
GIR_BuildRootMI, GIMT_Encode2(ARM::tUXTB),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12339),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsThumb_IsThumb1Only),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::tGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::tGPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(65535),
GIR_BuildRootMI, GIMT_Encode2(ARM::tUXTH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12398),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm_not),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::BICri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CustomRenderer, 0, 1, GIMT_Encode2(GICR_renderInvertedImm),
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12455),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::ANDri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12512),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ANDri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12563),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6T2_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckCxxInsnPredicate, 1, GIMT_Encode2(GICXXPred_MI_Predicate_bf_inv_mask_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::BFC),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12614),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckCxxInsnPredicate, 1, GIMT_Encode2(GICXXPred_MI_Predicate_bf_inv_mask_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2BFC),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12660),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::ANDrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(12706),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ANDrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(12754),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VANDd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(12866),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v2s1,
GIM_RootCheckType, 2, GILLT_v2s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2ANDrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(12913),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VANDd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(13025),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckType, 2, GILLT_v2s64,
GIM_Try, GIMT_Encode4(12965),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VANDq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(13024),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VAND),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(13137),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v4s1,
GIM_RootCheckType, 2, GILLT_v4s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2ANDrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(13184),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VANDd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(13296),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_Try, GIMT_Encode4(13236),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VANDq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(13295),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VAND),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(13408),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v8s1,
GIM_RootCheckType, 2, GILLT_v8s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2ANDrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(13455),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VANDd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(13567),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_Try, GIMT_Encode4(13507),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VANDq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(13566),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VAND),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(13679),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v16s1,
GIM_RootCheckType, 2, GILLT_v16s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2ANDrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(13791),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckType, 2, GILLT_v16s8,
GIM_Try, GIMT_Encode4(13731),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VANDq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(13790),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VAND),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Reject,
GIM_SwitchType, 0, 0, GIMT_Encode2(1), GIMT_Encode2(16), GIMT_Encode4(19523),
GIMT_Encode4(13864),
GIMT_Encode4(18439),
GIMT_Encode4(18486),
GIMT_Encode4(18598),
GIMT_Encode4(18645),
GIMT_Encode4(18757),
GIMT_Encode4(18869),
GIMT_Encode4(18916), GIMT_Encode4(0),
GIMT_Encode4(19028),
GIMT_Encode4(19140),
GIMT_Encode4(19187), GIMT_Encode4(0),
GIMT_Encode4(19299),
GIMT_Encode4(19411),
GIM_Try, GIMT_Encode4(18438),
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_Try, GIMT_Encode4(14002),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt8, 2, 2, 8,
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(255),
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_RecordInsn, 4, 3, 1,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckIsSameOperand, 4, 1, 2, 1,
GIM_CheckConstantInt8, 4, 2, 24,
GIM_CheckConstantInt8, 3, 2, 16,
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::REVSH),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(14129),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 2, 2, 8,
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(255),
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_RecordInsn, 4, 3, 1,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckIsSameOperand, 4, 1, 2, 1,
GIM_CheckConstantInt8, 4, 2, 24,
GIM_CheckConstantInt8, 3, 2, 16,
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2REVSH),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(14256),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt8, 2, 2, 24,
GIM_CheckConstantInt8, 1, 2, 16,
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_RecordInsn, 4, 3, 1,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckIsSameOperand, 4, 1, 2, 1,
GIM_CheckConstantInt8, 4, 2, 8,
GIM_CheckConstantInt, 3, 2, GIMT_Encode8(255),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::REVSH),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(14383),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 2, 2, 24,
GIM_CheckConstantInt8, 1, 2, 16,
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_RecordInsn, 4, 3, 1,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckIsSameOperand, 4, 1, 2, 1,
GIM_CheckConstantInt8, 4, 2, 8,
GIM_CheckConstantInt, 3, 2, GIMT_Encode8(255),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2REVSH),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(14516),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_pkh_asr_amt),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 4, 0, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 4, 1, GILLT_s32,
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckRegBankForClass, 4, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 4, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 4, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(14649),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_pkh_asr_amt),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 4, 0, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 4, 1, GILLT_s32,
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckRegBankForClass, 4, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 4, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 4, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(14782),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_imm1_15),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 4, 0, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 4, 1, GILLT_s32,
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckRegBankForClass, 4, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 4, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 4, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(14915),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_imm1_15),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 4, 0, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 4, 1, GILLT_s32,
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckRegBankForClass, 4, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 4, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 4, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(15048),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_pkh_lsl_amt),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 4, 0, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 4, 1, GILLT_s32,
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckRegBankForClass, 4, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 4, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 4, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(15181),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_pkh_lsl_amt),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 4, 0, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 4, 1, GILLT_s32,
GIM_CheckType, 4, 2, GILLT_s32,
GIM_CheckRegBankForClass, 4, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 4, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 4, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(15314),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_RecordInsn, 3, 2, 1,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 4, 3, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 4, GIMT_Encode2(GICXXPred_I64_Predicate_pkh_asr_amt),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 3, 1,
GIR_CopyConstantAsSImm, 0, 4,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(15447),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_RecordInsn, 3, 2, 1,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 4, 3, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 4, GIMT_Encode2(GICXXPred_I64_Predicate_pkh_asr_amt),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 3, 1,
GIR_CopyConstantAsSImm, 0, 4,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(15580),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_RecordInsn, 3, 2, 1,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 4, 3, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 4, GIMT_Encode2(GICXXPred_I64_Predicate_imm1_15),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 3, 1,
GIR_CopyConstantAsSImm, 0, 4,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(15713),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_RecordInsn, 3, 2, 1,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 4, 3, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 4, GIMT_Encode2(GICXXPred_I64_Predicate_imm1_15),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 3, 1,
GIR_CopyConstantAsSImm, 0, 4,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(15846),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_RecordInsn, 3, 2, 1,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 4, 3, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 4, GIMT_Encode2(GICXXPred_I64_Predicate_pkh_lsl_amt),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 3, 1,
GIR_CopyConstantAsSImm, 0, 4,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(15979),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_RecordInsn, 3, 2, 1,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 4, 3, 2,
GIM_CheckOpcode, 4, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 4, GIMT_Encode2(GICXXPred_I64_Predicate_pkh_lsl_amt),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 4,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 3, 1,
GIR_CopyConstantAsSImm, 0, 4,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16084),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16189),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16294),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16399),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 2, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 2, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16505),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16611),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16717),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_imm16),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16823),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(4294901760),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_imm16),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(16929),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17035),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 1, 2, GIMT_Encode8(65535),
GIM_RecordInsn, 2, 0, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 2, 1, GILLT_s32,
GIM_CheckType, 2, 2, GILLT_s32,
GIM_CheckRegBankForClass, 2, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 3, 2, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 3, GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 1, 1,
GIR_Copy, 0, 2, 1,
GIR_CopyConstantAsSImm, 0, 3,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17141),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 3, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 3, 1,
GIR_Copy, 0, 1, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17247),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ASHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 3, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 3, 1,
GIR_Copy, 0, 1, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17353),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_imm16),
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 3, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 3, 1,
GIR_Copy, 0, 1, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17459),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_imm16),
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 3, 2, GIMT_Encode8(4294901760),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHTB),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 3, 1,
GIR_Copy, 0, 1, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17565),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_CheckConstantInt, 3, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 3, 1,
GIR_Copy, 0, 1, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17671),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SHL),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_imm16_31),
GIM_RecordInsn, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_AND),
GIM_CheckType, 3, 1, GILLT_s32,
GIM_CheckType, 3, 2, GILLT_s32,
GIM_CheckRegBankForClass, 3, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 3, 2, GIMT_Encode8(65535),
GIM_CheckIsSafeToFold, 3,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2PKHBT),
GIR_RootToRootCopy, 0,
GIR_Copy, 0, 3, 1,
GIR_Copy, 0, 1, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17748),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckConstantInt8, 1, 1, uint8_t(-1),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ORNri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17825),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ORNri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17902),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckConstantInt8, 1, 1, uint8_t(-1),
GIM_RecordInsn, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ORNri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(17979),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_RecordInsn, 2, 1, 1,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 2, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_CheckIsSafeToFold, 2,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ORNri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18050),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ORNrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18121),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_XOR),
GIM_CheckType, 1, 1, GILLT_s32,
GIM_CheckType, 1, 2, GILLT_s32,
GIM_CheckRegBankForClass, 1, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 1, 2, uint8_t(-1),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ORNrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_Copy, 0, 1, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18176),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6T2_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(4294901760),
GIR_BuildRootMI, GIMT_Encode2(ARM::MOVTi16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm, 0, GIMT_Encode8(65535),
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18231),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt, 0, 2, GIMT_Encode8(4294901760),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2MOVTi16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm, 0, GIMT_Encode8(65535),
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18288),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::ORRri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18345),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ORRri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18391),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::ORRrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18437),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2ORRrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(18485),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VORRd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(18597),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v2s1,
GIM_RootCheckType, 2, GILLT_v2s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2ORRrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(18644),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VORRd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(18756),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckType, 2, GILLT_v2s64,
GIM_Try, GIMT_Encode4(18696),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VORRq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(18755),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VORR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(18868),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v4s1,
GIM_RootCheckType, 2, GILLT_v4s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2ORRrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(18915),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VORRd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(19027),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_Try, GIMT_Encode4(18967),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VORRq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19026),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VORR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(19139),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v8s1,
GIM_RootCheckType, 2, GILLT_v8s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2ORRrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(19186),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VORRd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(19298),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_Try, GIMT_Encode4(19238),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VORRq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19297),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VORR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(19410),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v16s1,
GIM_RootCheckType, 2, GILLT_v16s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2ORRrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(19522),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckType, 2, GILLT_v16s8,
GIM_Try, GIMT_Encode4(19462),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VORRq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19521),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VORR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Reject,
GIM_SwitchType, 0, 0, GIMT_Encode2(1), GIMT_Encode2(16), GIMT_Encode4(21096),
GIMT_Encode4(19595),
GIMT_Encode4(20012),
GIMT_Encode4(20059),
GIMT_Encode4(20171),
GIMT_Encode4(20218),
GIMT_Encode4(20330),
GIMT_Encode4(20442),
GIMT_Encode4(20489), GIMT_Encode4(0),
GIMT_Encode4(20601),
GIMT_Encode4(20713),
GIMT_Encode4(20760), GIMT_Encode4(0),
GIMT_Encode4(20872),
GIMT_Encode4(20984),
GIM_Try, GIMT_Encode4(20011),
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_Try, GIMT_Encode4(19661),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 0, 1, uint8_t(-1),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2MVNi),
GIR_RootToRootCopy, 0,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19716),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckConstantInt8, 0, 2, uint8_t(-1),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2MVNi),
GIR_RootToRootCopy, 0,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19760),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_CheckConstantInt8, 0, 2, uint8_t(-1),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2MVNr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19804),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_CheckConstantInt8, 0, 2, uint8_t(-1),
GIR_BuildRootMI, GIMT_Encode2(ARM::MVNr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19861),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_mod_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::EORri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19918),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RecordInsn, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckI64ImmPredicate, 1, GIMT_Encode2(GICXXPred_I64_Predicate_t2_so_imm),
GIM_CheckIsSafeToFold, 1,
GIR_BuildRootMI, GIMT_Encode2(ARM::t2EORri),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_CopyConstantAsSImm, 0, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(19964),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsARM),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::EORrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(20010),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_IsThumb2),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2EORrr),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(20058),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VEORd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(20170),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v2s1,
GIM_RootCheckType, 2, GILLT_v2s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2EORrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(20217),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VEORd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(20329),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckType, 2, GILLT_v2s64,
GIM_Try, GIMT_Encode4(20269),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VEORq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(20328),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VEOR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(20441),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v4s1,
GIM_RootCheckType, 2, GILLT_v4s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2EORrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(20488),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VEORd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(20600),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_Try, GIMT_Encode4(20540),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VEORq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(20599),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VEOR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(20712),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v8s1,
GIM_RootCheckType, 2, GILLT_v8s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2EORrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(20759),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VEORd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(20871),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_Try, GIMT_Encode4(20811),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VEORq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(20870),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VEOR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(20983),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v16s1,
GIM_RootCheckType, 2, GILLT_v16s1,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::VCCRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_MakeTempReg, 0, GILLT_s32,
GIR_MakeTempReg, 1, GILLT_s32,
GIR_MakeTempReg, 2, GILLT_s32,
GIR_BuildMI, 3, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 3, 2, GIMT_Encode2(RegState::Define),
GIR_Copy, 3, 0, 2,
GIR_ConstrainSelectedInstOperands, 3,
GIR_BuildMI, 2, GIMT_Encode2(TargetOpcode::COPY),
GIR_AddTempRegister, 2, 1, GIMT_Encode2(RegState::Define),
GIR_Copy, 2, 0, 1,
GIR_ConstrainSelectedInstOperands, 2,
GIR_BuildMI, 1, GIMT_Encode2(ARM::t2EORrr),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_AddSimpleTempRegister, 1, 1,
GIR_AddSimpleTempRegister, 1, 2,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddSimpleTempRegister, 0, 0,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::VCCRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(21095),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckType, 2, GILLT_v16s8,
GIM_Try, GIMT_Encode4(21035),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VEORq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21094),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VEOR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(21522),
GIM_CheckNumOperands, 0, 3,
GIM_SwitchType, 0, 0, GIMT_Encode2(5), GIMT_Encode2(16), GIMT_Encode4(21521),
GIMT_Encode4(21160), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(21218), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(21321), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(21463),
GIM_Try, GIMT_Encode4(21217),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 2,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_ConstrainOperandRC, 0, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_ConstrainOperandRC, 0, 3, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(21320),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_Try, GIMT_Encode4(21280),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 2,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_ConstrainOperandRC, 0, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_ConstrainOperandRC, 0, 3, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21319),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 2,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_ConstrainOperandRC, 0, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_ConstrainOperandRC, 0, 3, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(21462),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIM_Try, GIMT_Encode4(21383),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 2,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_ConstrainOperandRC, 0, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_ConstrainOperandRC, 0, 3, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21422),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 2,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_ConstrainOperandRC, 0, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_ConstrainOperandRC, 0, 3, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21461),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 2,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_ConstrainOperandRC, 0, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_ConstrainOperandRC, 0, 3, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(21520),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::REG_SEQUENCE),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 1,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 2,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_ConstrainOperandRC, 0, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_ConstrainOperandRC, 0, 3, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Reject,
GIM_SwitchType, 0, 0, GIMT_Encode2(1), GIMT_Encode2(16), GIMT_Encode4(31970),
GIMT_Encode4(21594),
GIMT_Encode4(21742), GIMT_Encode4(0),
GIMT_Encode4(22635),
GIMT_Encode4(23528), GIMT_Encode4(0),
GIMT_Encode4(25365),
GIMT_Encode4(26529), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(28366),
GIMT_Encode4(28850), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(30958),
GIM_Try, GIMT_Encode4(21741),
GIM_RootCheckType, 1, GILLT_s32,
GIM_Try, GIMT_Encode4(21636),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPRegs),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::SPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VMOVRS),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21670),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPRegs_UseVMOVSR),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VMOVSR),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21740),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseVMOVSR_HasNEON),
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::GPRRegClassID),
GIR_MakeTempReg, 0, GILLT_s64,
GIR_BuildMI, 1, GIMT_Encode2(ARM::VMOVDRR),
GIR_AddTempRegister, 1, 0, GIMT_Encode2(RegState::Define),
GIR_Copy, 1, 0, 1,
GIR_Copy, 1, 0, 1,
GIR_AddImm8, 1, 14,
GIR_AddRegister, 1, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_ConstrainSelectedInstOperands, 1,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_AddTempSubRegister, 0, 0, GIMT_Encode2(0), GIMT_Encode2(ARM::ssub_0),
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIR_ConstrainOperandRC, 0, 1, GIMT_Encode2(ARM::DPR_VFP2RegClassID),
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(21774),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21806),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21838),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21870),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21902),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21934),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21966),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(21998),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22030),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22062),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22094),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22126),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22158),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22190),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22227),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22264),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22301),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22338),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22375),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22412),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22449),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22486),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22523),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22560),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22597),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22634),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(22667),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22699),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22731),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22763),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22795),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22827),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22859),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22891),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22923),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22955),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(22987),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23019),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23051),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23083),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23120),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23157),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23194),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23231),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23268),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23305),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23342),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23379),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23416),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23453),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23490),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23527),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(23560),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23592),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23624),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23656),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23688),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23720),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23752),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23784),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23816),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23848),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23880),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23912),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23944),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(23976),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24013),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24050),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24087),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24124),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24161),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24198),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24235),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24272),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24309),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24346),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24383),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24420),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24452),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24484),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24516),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24548),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24580),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24612),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24644),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24676),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24708),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24740),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24772),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24804),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24860),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24916),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(24972),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25028),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25084),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25140),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25196),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25252),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25308),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25364),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(25397),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25429),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25461),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25493),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25525),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25557),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25589),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25621),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25653),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25685),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25717),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25749),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25781),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25813),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25845),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25877),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25909),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25941),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(25973),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26010),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26047),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26084),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26121),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26158),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26195),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26232),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26269),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26306),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26343),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26380),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26417),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26454),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26491),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26528),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(26561),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26593),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26625),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26657),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26689),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26721),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26753),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26785),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26817),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26849),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26881),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26913),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26945),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(26977),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27014),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27051),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27088),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27125),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27162),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27199),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27236),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27273),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27310),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27347),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27384),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27421),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27453),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27485),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27517),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27549),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27581),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27613),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27645),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27677),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27709),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27741),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27773),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27805),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27861),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27917),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(27973),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28029),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28085),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28141),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28197),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28253),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28309),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28365),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(28398),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28430),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28462),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28494),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28526),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28558),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28590),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28627),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28664),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28701),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28738),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28775),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28812),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28849),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16d8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(28882),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28914),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28946),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(28978),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29010),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29042),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29074),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29106),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29138),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29170),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29202),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29234),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29266),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29298),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29330),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29362),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29394),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29426),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29458),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29495),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29532),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29569),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29606),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29643),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29680),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29717),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29754),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29791),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29828),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29865),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29902),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29939),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(29976),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30013),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30045),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30077),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30109),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30141),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30173),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30205),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30237),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30269),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30301),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30333),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30365),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30397),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30453),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30509),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30565),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30621),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30677),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV16_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30733),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30789),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30845),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30901),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(30957),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV16_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(30990),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31022),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31054),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31086),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31118),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31150),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31182),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31219),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31256),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV64q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31293),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31330),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV32q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31367),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31404),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31441),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VREV16q8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31473),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31505),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31537),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31569),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31601),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31633),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsLE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::COPY),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_ConstrainOperandRC, 0, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31689),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31745),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v2s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV64_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31801),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31857),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV32_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31913),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV16_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(31969),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEInt_IsBE),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VREV16_8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_SwitchType, 0, 0, GIMT_Encode2(0), GIMT_Encode2(13), GIMT_Encode4(32262),
GIMT_Encode4(32034),
GIMT_Encode4(32072),
GIMT_Encode4(32110), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(32148), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(32205),
GIM_Try, GIMT_Encode4(32071),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
GIM_RootCheckType, 1, GILLT_s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::HPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::HPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRINTZH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(32109),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::SPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRINTZS),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(32147),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRINTZD),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(32204),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VRINTf32Z),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(32261),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VRINTf16Z),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_SwitchType, 0, 0, GIMT_Encode2(0), GIMT_Encode2(13), GIMT_Encode4(32521),
GIMT_Encode4(32326),
GIMT_Encode4(32353),
GIMT_Encode4(32380), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(32407), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(32464),
GIM_Try, GIMT_Encode4(32352),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
GIM_RootCheckType, 1, GILLT_s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::HPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::HPRRegClassID),
GIR_MutateOpcode, 0, 0, GIMT_Encode2(ARM::VRINTAH),
GIR_RootConstrainSelectedInstOperands,
GIR_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(32379),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
GIM_RootCheckType, 1, GILLT_s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::SPRRegClassID),
GIR_MutateOpcode, 0, 0, GIMT_Encode2(ARM::VRINTAS),
GIR_RootConstrainSelectedInstOperands,
GIR_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(32406),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
GIM_RootCheckType, 1, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::DPRRegClassID),
GIR_MutateOpcode, 0, 0, GIMT_Encode2(ARM::VRINTAD),
GIR_RootConstrainSelectedInstOperands,
GIR_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(32463),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
GIM_RootCheckType, 1, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VRINTf32A),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(32520),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasMVEFloat),
GIM_RootCheckType, 1, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::MQPRRegClassID),
GIM_RootCheckRegBankForClass, 1, GIMT_Encode2(ARM::MQPRRegClassID),
GIR_MakeTempReg, 0, GILLT_v4s32,
GIR_BuildMI, 1, GIMT_Encode2(TargetOpcode::IMPLICIT_DEF),
GIR_AddSimpleTempRegister, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(ARM::MVE_VRINTf16A),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_AddImm8, 0, 0,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_AddSimpleTempRegister, 0, 0,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Reject,
GIM_Try, GIMT_Encode4(32542),
GIM_RootCheckType, 1, GILLT_s32,
GIM_CheckIsImm, 0, 0,
GIM_CheckConstantInt8, 0, 1, 0,
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::MEMBARRIER),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(38345),
GIM_CheckNumOperands, 0, 3,
GIM_Try, GIMT_Encode4(32599),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasV6_IsARM),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_uxtb16),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::GPRnopcRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::GPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::UXTB16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32647),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDSP_IsThumb2),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_uxtb16),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::rGPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::rGPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::t2UXTB16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 0,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32683),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
GIM_RootCheckType, 0, GILLT_s16,
GIM_RootCheckType, 2, GILLT_s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::HPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::HPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRINTNH),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32719),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFPARMv8),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::SPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRINTNS),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32755),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasFPARMv8),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrintn),
GIM_RootCheckType, 0, GILLT_s64,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRINTND),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32800),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_vcvtr),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VTOSIRD),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32845),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_vcvtr),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::SPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VTOSIRS),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32890),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDPVFP_HasVFP2),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_vcvtru),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s64,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VTOUIRD),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32935),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_DontUseNEONForFP_HasVFP2),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_vcvtru),
GIM_RootCheckType, 0, GILLT_s32,
GIM_RootCheckType, 2, GILLT_s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::SPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::SPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VTOUIRS),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(32980),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
GIM_RootCheckType, 0, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLsv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33025),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
GIM_RootCheckType, 0, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLsv4i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33070),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
GIM_RootCheckType, 0, GILLT_s64,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLsv2i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33115),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
GIM_RootCheckType, 0, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLsv16i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33160),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
GIM_RootCheckType, 0, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLsv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33205),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddls),
GIM_RootCheckType, 0, GILLT_v2s64,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLsv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33250),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
GIM_RootCheckType, 0, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLuv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33295),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
GIM_RootCheckType, 0, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLuv4i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33340),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
GIM_RootCheckType, 0, GILLT_s64,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLuv2i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33385),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
GIM_RootCheckType, 0, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v16s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLuv16i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33430),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
GIM_RootCheckType, 0, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLuv8i16),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33475),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vpaddlu),
GIM_RootCheckType, 0, GILLT_v2s64,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VPADDLuv4i32),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33520),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
GIM_RootCheckType, 0, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRECPEd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33565),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
GIM_RootCheckType, 0, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRECPEq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33610),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
GIM_RootCheckType, 0, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRECPEfd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33655),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
GIM_RootCheckType, 0, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRECPEfq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33700),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
GIM_RootCheckType, 0, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRECPEhd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33745),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrecpe),
GIM_RootCheckType, 0, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRECPEhq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33790),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
GIM_RootCheckType, 0, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRSQRTEd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33835),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
GIM_RootCheckType, 0, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRSQRTEq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33880),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
GIM_RootCheckType, 0, GILLT_v2s32,
GIM_RootCheckType, 2, GILLT_v2s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRSQRTEfd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33925),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
GIM_RootCheckType, 0, GILLT_v4s32,
GIM_RootCheckType, 2, GILLT_v4s32,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRSQRTEfq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(33970),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
GIM_RootCheckType, 0, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRSQRTEhd),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(34015),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFullFP16_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vrsqrte),
GIM_RootCheckType, 0, GILLT_v8s16,
GIM_RootCheckType, 2, GILLT_v8s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::QPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::QPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VRSQRTEhq),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(34060),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vqabs),
GIM_RootCheckType, 0, GILLT_v8s8,
GIM_RootCheckType, 2, GILLT_v8s8,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VQABSv8i8),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 2,
GIR_AddImm8, 0, 14,
GIR_AddRegister, 0, GIMT_Encode2(ARM::NoRegister), GIMT_Encode2(0),
GIR_RootConstrainSelectedInstOperands,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(34105),
GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasNEON),
GIM_CheckIntrinsicID, 0, 1, GIMT_Encode2(Intrinsic::arm_neon_vqabs),
GIM_RootCheckType, 0, GILLT_v4s16,
GIM_RootCheckType, 2, GILLT_v4s16,
GIM_RootCheckRegBankForClass, 0, GIMT_Encode2(ARM::DPRRegClassID),
GIM_RootCheckRegBankForClass, 2, GIMT_Encode2(ARM::DPRRegClassID),
GIR_BuildRootMI, GIMT_Encode2(ARM::VQABSv4i16),
GIR_RootToRootCopy, 0, #undef GIMT_Encode2#undef GIMT_Encode4#undef GIMT_Encode8#endif #ifdef GET_GLOBALISEL_PREDICATES_DECL#endif #ifdef GET_GLOBALISEL_PREDICATES_INIT#endif