blob: 40f893fdae3396095030b993e990f7083f74fb82 [file] [log] [blame]
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Global Instruction Selector for the ARM target *|
|* *|
|* Automatically generated file, do not edit! *|
|* *|
\*===----------------------------------------------------------------------===*/
#ifdef GET_GLOBALISEL_PREDICATE_BITSET
const unsigned MAX_SUBTARGET_PREDICATES = 80;
using PredicateBitset = llvm::PredicateBitsetImpl<MAX_SUBTARGET_PREDICATES>;
#endif // ifdef GET_GLOBALISEL_PREDICATE_BITSET
#ifdef GET_GLOBALISEL_TEMPORARIES_DECL
mutable MatcherState State;
typedef ComplexRendererFns(ARMInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
typedef void(ARMInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ISelInfo;
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 int64_t *getMatchTable() const override;
bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const std::array<const MachineOperand *, 3> &Operands) const override;
#endif // ifdef GET_GLOBALISEL_TEMPORARIES_DECL
#ifdef GET_GLOBALISEL_TEMPORARIES_INIT
, State(0),
ISelInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
#endif // ifdef GET_GLOBALISEL_TEMPORARIES_INIT
#ifdef GET_GLOBALISEL_IMPL
// Bits for subtarget features that participate in instruction matching.
enum SubtargetFeatureBits : uint8_t {
Feature_NoHonorSignDependentRoundingBit = 71,
Feature_HasV4TBit = 6,
Feature_NoV4TBit = 7,
Feature_HasV5TBit = 13,
Feature_NoV5TBit = 65,
Feature_HasV5TEBit = 11,
Feature_HasV6Bit = 0,
Feature_NoV6Bit = 9,
Feature_HasV6MBit = 29,
Feature_HasV8MBaselineBit = 34,
Feature_HasV8_1MMainlineBit = 40,
Feature_HasMVEIntBit = 63,
Feature_HasMVEFloatBit = 64,
Feature_HasCDEBit = 79,
Feature_HasFPRegsBit = 41,
Feature_HasFPRegs16Bit = 42,
Feature_HasNoFPRegs16Bit = 70,
Feature_HasFPRegs64Bit = 51,
Feature_HasV6T2Bit = 8,
Feature_HasV6KBit = 19,
Feature_HasV7Bit = 3,
Feature_HasV8Bit = 15,
Feature_PreV8Bit = 20,
Feature_HasV8_1aBit = 73,
Feature_HasV8_3aBit = 74,
Feature_NoVFPBit = 23,
Feature_HasVFP2Bit = 22,
Feature_HasVFP3Bit = 52,
Feature_HasVFP4Bit = 49,
Feature_HasDPVFPBit = 43,
Feature_HasFPARMv8Bit = 46,
Feature_HasNEONBit = 53,
Feature_HasSHA2Bit = 61,
Feature_HasAESBit = 54,
Feature_HasDotProdBit = 55,
Feature_HasCRCBit = 14,
Feature_HasLOBBit = 39,
Feature_HasFP16Bit = 60,
Feature_HasFullFP16Bit = 45,
Feature_HasBF16Bit = 62,
Feature_HasMatMulInt8Bit = 56,
Feature_HasDivideInThumbBit = 36,
Feature_HasDivideInARMBit = 12,
Feature_HasDSPBit = 35,
Feature_HasDBBit = 16,
Feature_HasV7ClrexBit = 18,
Feature_HasAcquireReleaseBit = 17,
Feature_HasMPBit = 2,
Feature_Has8MSecExtBit = 30,
Feature_HasZCZBit = 57,
Feature_UseNEONForFPBit = 77,
Feature_DontUseNEONForFPBit = 44,
Feature_IsThumbBit = 27,
Feature_IsThumb1OnlyBit = 28,
Feature_IsThumb2Bit = 33,
Feature_IsNotMClassBit = 37,
Feature_IsARMBit = 1,
Feature_IsWindowsBit = 31,
Feature_IsNotWindowsBit = 32,
Feature_IsReadTPHardBit = 68,
Feature_IsReadTPSoftBit = 21,
Feature_UseNaClTrapBit = 4,
Feature_DontUseNaClTrapBit = 5,
Feature_UseMovtBit = 38,
Feature_DontUseMovtBit = 24,
Feature_UseMovtInPicBit = 25,
Feature_DontUseMovtInPicBit = 26,
Feature_UseFPVMLxBit = 48,
Feature_SLSBLRMitigationBit = 67,
Feature_NoSLSBLRMitigationBit = 66,
Feature_UseMulOpsBit = 10,
Feature_UseFusedMACBit = 50,
Feature_HasFastVGETLNi32Bit = 58,
Feature_HasSlowVGETLNi32Bit = 75,
Feature_HasFastVDUP32Bit = 59,
Feature_HasSlowVDUP32Bit = 76,
Feature_UseVMOVSRBit = 47,
Feature_DontUseVMOVSRBit = 78,
Feature_IsLEBit = 69,
Feature_IsBEBit = 72,
};
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->isReadTPHard())
Features.set(Feature_IsReadTPHardBit);
if (!Subtarget->isReadTPHard())
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);
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);
return Features;
}
// LLT Objects.
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),
};
// Feature bitsets.
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_DontUseVMOVSR_HasNEON,
GIFBS_Has8MSecExt_IsThumb,
GIFBS_HasAES_HasV8,
GIFBS_HasBF16_HasNEON,
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_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_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_NoV6,
GIFBS_IsARM_PreV8,
GIFBS_IsThumb_IsThumb1Only,
GIFBS_IsThumb_IsWindows,
GIFBS_IsThumb_UseMovt,
GIFBS_IsThumb2_PreV8,
GIFBS_IsThumb2_UseMulOps,
GIFBS_HasCRC_HasV8_IsARM,
GIFBS_HasCRC_HasV8_IsThumb2,
GIFBS_HasDSP_IsThumb2_UseMulOps,
GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb,
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,
};
const static PredicateBitset FeatureBitsets[] {
{}, // GIFBS_Invalid
{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_DontUseVMOVSRBit, Feature_HasNEONBit, },
{Feature_Has8MSecExtBit, Feature_IsThumbBit, },
{Feature_HasAESBit, Feature_HasV8Bit, },
{Feature_HasBF16Bit, Feature_HasNEONBit, },
{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_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_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_NoV6Bit, },
{Feature_IsARMBit, Feature_PreV8Bit, },
{Feature_IsThumbBit, Feature_IsThumb1OnlyBit, },
{Feature_IsThumbBit, Feature_IsWindowsBit, },
{Feature_IsThumbBit, Feature_UseMovtBit, },
{Feature_IsThumb2Bit, Feature_PreV8Bit, },
{Feature_IsThumb2Bit, Feature_UseMulOpsBit, },
{Feature_HasCRCBit, Feature_HasV8Bit, Feature_IsARMBit, },
{Feature_HasCRCBit, Feature_HasV8Bit, Feature_IsThumb2Bit, },
{Feature_HasDSPBit, Feature_IsThumb2Bit, Feature_UseMulOpsBit, },
{Feature_HasDivideInThumbBit, Feature_HasV8MBaselineBit, Feature_IsThumbBit, },
{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, },
};
// ComplexPattern predicates.
enum {
GICP_Invalid,
};
// See constructor for table contents
// PatFrag predicates.
enum {
GIPFP_I64_Predicate_VectorIndex16 = GIPFP_I64_Invalid + 1,
GIPFP_I64_Predicate_VectorIndex32,
GIPFP_I64_Predicate_VectorIndex64,
GIPFP_I64_Predicate_VectorIndex8,
GIPFP_I64_Predicate_asr_imm,
GIPFP_I64_Predicate_imm0_15,
GIPFP_I64_Predicate_imm0_239,
GIPFP_I64_Predicate_imm0_255,
GIPFP_I64_Predicate_imm0_31,
GIPFP_I64_Predicate_imm0_32,
GIPFP_I64_Predicate_imm0_4095,
GIPFP_I64_Predicate_imm0_63,
GIPFP_I64_Predicate_imm0_65535,
GIPFP_I64_Predicate_imm0_65535_neg,
GIPFP_I64_Predicate_imm0_7,
GIPFP_I64_Predicate_imm16,
GIPFP_I64_Predicate_imm16_31,
GIPFP_I64_Predicate_imm1_15,
GIPFP_I64_Predicate_imm1_16,
GIPFP_I64_Predicate_imm1_31,
GIPFP_I64_Predicate_imm1_7,
GIPFP_I64_Predicate_imm24b,
GIPFP_I64_Predicate_imm256_510,
GIPFP_I64_Predicate_imm32,
GIPFP_I64_Predicate_imm8,
GIPFP_I64_Predicate_imm8_255,
GIPFP_I64_Predicate_imm8_or_16,
GIPFP_I64_Predicate_imm_11b,
GIPFP_I64_Predicate_imm_12b,
GIPFP_I64_Predicate_imm_13b,
GIPFP_I64_Predicate_imm_3b,
GIPFP_I64_Predicate_imm_4b,
GIPFP_I64_Predicate_imm_6b,
GIPFP_I64_Predicate_imm_7b,
GIPFP_I64_Predicate_imm_9b,
GIPFP_I64_Predicate_imm_even,
GIPFP_I64_Predicate_imm_odd,
GIPFP_I64_Predicate_long_shift,
GIPFP_I64_Predicate_mod_imm,
GIPFP_I64_Predicate_pkh_asr_amt,
GIPFP_I64_Predicate_pkh_lsl_amt,
GIPFP_I64_Predicate_shr_imm16,
GIPFP_I64_Predicate_shr_imm32,
GIPFP_I64_Predicate_shr_imm64,
GIPFP_I64_Predicate_shr_imm8,
GIPFP_I64_Predicate_t2_so_imm,
GIPFP_I64_Predicate_t2_so_imm_neg,
};
bool ARMInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
switch (PredicateID) {
case GIPFP_I64_Predicate_VectorIndex16: {
return ((uint64_t)Imm) < 4;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_VectorIndex32: {
return ((uint64_t)Imm) < 2;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_VectorIndex64: {
return ((uint64_t)Imm) < 1;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_VectorIndex8: {
return ((uint64_t)Imm) < 8;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_asr_imm: {
return Imm > 0 && Imm <= 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_15: {
return Imm >= 0 && Imm < 16;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_239: {
return Imm >= 0 && Imm < 240;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_255: {
return Imm >= 0 && Imm < 256;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_31: {
return Imm >= 0 && Imm < 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_32: {
return Imm >= 0 && Imm < 33;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_4095: {
return Imm >= 0 && Imm < 4096;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_63: {
return Imm >= 0 && Imm < 64;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_65535: {
return Imm >= 0 && Imm < 65536;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_65535_neg: {
return -Imm >= 0 && -Imm < 65536;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm0_7: {
return Imm >= 0 && Imm < 8;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm16: {
return Imm == 16;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm16_31: {
return (int32_t)Imm >= 16 && (int32_t)Imm < 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm1_15: {
return Imm > 0 && Imm < 16;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm1_16: {
return Imm > 0 && Imm <= 16;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm1_31: {
return Imm > 0 && Imm < 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm1_7: {
return Imm > 0 && Imm < 8;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm24b: {
return Imm >= 0 && Imm <= 0xffffff;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm256_510: {
return Imm >= 256 && Imm < 511;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm32: {
return Imm == 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm8: {
return Imm == 8;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm8_255: {
return Imm >= 8 && Imm < 256;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm8_or_16: {
return Imm == 8 || Imm == 16;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_11b: {
{ return Imm >= 0 && Imm < (1 << 11); }
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_12b: {
{ return Imm >= 0 && Imm < (1 << 12); }
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_13b: {
{ return Imm >= 0 && Imm < (1 << 13); }
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_3b: {
{ return Imm >= 0 && Imm < (1 << 3); }
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_4b: {
{ return Imm >= 0 && Imm < (1 << 4); }
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_6b: {
{ return Imm >= 0 && Imm < (1 << 6); }
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_7b: {
{ return Imm >= 0 && Imm < (1 << 7); }
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_9b: {
{ return Imm >= 0 && Imm < (1 << 9); }
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_even: {
return (Imm & 1) == 0;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_imm_odd: {
return (Imm & 1) == 1;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_long_shift: {
return Imm > 0 && Imm <= 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_mod_imm: {
return ARM_AM::getSOImmVal(Imm) != -1;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_pkh_asr_amt: {
return Imm > 0 && Imm <= 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_pkh_lsl_amt: {
return Imm >= 0 && Imm < 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_shr_imm16: {
return Imm > 0 && Imm <= 16;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_shr_imm32: {
return Imm > 0 && Imm <= 32;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_shr_imm64: {
return Imm > 0 && Imm <= 64;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_shr_imm8: {
return Imm > 0 && Imm <= 8;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_t2_so_imm: {
return ARM_AM::getT2SOImmVal(Imm) != -1;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
case GIPFP_I64_Predicate_t2_so_imm_neg: {
return Imm && ARM_AM::getT2SOImmVal(-(uint32_t)Imm) != -1;
llvm_unreachable("ImmediateCode should have returned");
return false;
}
}
llvm_unreachable("Unknown predicate");
return false;
}
bool ARMInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
llvm_unreachable("Unknown predicate");
return false;
}
// PatFrag predicates.
enum {
GIPFP_APInt_Predicate_arm_i32imm = GIPFP_APInt_Invalid + 1,
};
bool ARMInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
switch (PredicateID) {
case GIPFP_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("ImmediateCode should have returned");
return false;
}
}
llvm_unreachable("Unknown predicate");
return false;
}
// PatFrag predicates.
enum {
GIPFP_MI_Predicate_bf_inv_mask_imm = GIPFP_MI_Invalid + 1,
GIPFP_MI_Predicate_vfp_f32imm,
GIPFP_MI_Predicate_vfp_f64imm,
};
bool ARMInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const std::array<const MachineOperand *, 3> &Operands) const {
const MachineFunction &MF = *MI.getParent()->getParent();
const MachineRegisterInfo &MRI = MF.getRegInfo();
(void)MRI;
switch (PredicateID) {
case GIPFP_MI_Predicate_bf_inv_mask_imm: {
// There's better methods of implementing this check. IntImmLeaf<> would be
// equivalent and have less boilerplate but we need a test for C++
// predicates and this one causes new rules to be imported into GlobalISel
// without requiring additional features first.
const auto &MO = MI.getOperand(1);
if (!MO.isCImm())
return false;
return ARM::isBitFieldInvertedMask(MO.getCImm()->getZExtValue());
llvm_unreachable("GISelPredicateCode should have returned");
return false;
}
case GIPFP_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("GISelPredicateCode should have returned");
return false;
}
case GIPFP_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("GISelPredicateCode should have returned");
return false;
}
}
llvm_unreachable("Unknown predicate");
return false;
}
ARMInstructionSelector::ComplexMatcherMemFn
ARMInstructionSelector::ComplexPredicateFns[] = {
nullptr, // GICP_Invalid
};
// Custom renderers.
enum {
GICR_Invalid,
GICR_renderVFPF32Imm,
GICR_renderVFPF64Imm,
};
ARMInstructionSelector::CustomRendererFn
ARMInstructionSelector::CustomRenderers[] = {
nullptr, // GICR_Invalid
&ARMInstructionSelector::renderVFPF32Imm,
&ARMInstructionSelector::renderVFPF64Imm,
};
bool ARMInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
MachineFunction &MF = *I.getParent()->getParent();
MachineRegisterInfo &MRI = MF.getRegInfo();
const PredicateBitset AvailableFeatures = getAvailableFeatures();
NewMIVector OutMIs;
State.MIs.clear();
State.MIs.push_back(&I);
if (executeMatchTable(*this, OutMIs, State, ISelInfo, getMatchTable(), TII, MRI, TRI, RBI, AvailableFeatures, CoverageInfo)) {
return true;
}
return false;
}
const int64_t *ARMInstructionSelector::getMatchTable() const {
constexpr static int64_t MatchTable0[] = {
GIM_SwitchOpcode, /*MI*/0, /*[*/46, 216, /*)*//*default:*//*Label 65*/ 129518,
/*TargetOpcode::G_ADD*//*Label 0*/ 175,
/*TargetOpcode::G_SUB*//*Label 1*/ 8383,
/*TargetOpcode::G_MUL*//*Label 2*/ 11424,
/*TargetOpcode::G_SDIV*//*Label 3*/ 12269,
/*TargetOpcode::G_UDIV*//*Label 4*/ 12371, 0, 0, 0, 0,
/*TargetOpcode::G_AND*//*Label 5*/ 12473,
/*TargetOpcode::G_OR*//*Label 6*/ 15233,
/*TargetOpcode::G_XOR*//*Label 7*/ 20473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/*TargetOpcode::G_CONCAT_VECTORS*//*Label 8*/ 21991, 0, 0,
/*TargetOpcode::G_BITCAST*//*Label 9*/ 22385, 0, 0,
/*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 10*/ 33295,
/*TargetOpcode::G_INTRINSIC_ROUND*//*Label 11*/ 33551, 0, 0, 0, 0,
/*TargetOpcode::G_SEXTLOAD*//*Label 12*/ 33759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/*TargetOpcode::G_FENCE*//*Label 13*/ 33905, 0, 0, 0,
/*TargetOpcode::G_INTRINSIC*//*Label 14*/ 33927,
/*TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS*//*Label 15*/ 94676,
/*TargetOpcode::G_ANYEXT*//*Label 16*/ 103121,
/*TargetOpcode::G_TRUNC*//*Label 17*/ 103256,
/*TargetOpcode::G_CONSTANT*//*Label 18*/ 103391,
/*TargetOpcode::G_FCONSTANT*//*Label 19*/ 103588, 0, 0,
/*TargetOpcode::G_SEXT*//*Label 20*/ 103667, 0,
/*TargetOpcode::G_ZEXT*//*Label 21*/ 103802,
/*TargetOpcode::G_SHL*//*Label 22*/ 104324,
/*TargetOpcode::G_LSHR*//*Label 23*/ 104433,
/*TargetOpcode::G_ASHR*//*Label 24*/ 104493, 0, 0,
/*TargetOpcode::G_ROTR*//*Label 25*/ 104711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/*TargetOpcode::G_UMULH*//*Label 26*/ 104979,
/*TargetOpcode::G_SMULH*//*Label 27*/ 105204,
/*TargetOpcode::G_UADDSAT*//*Label 28*/ 105534,
/*TargetOpcode::G_SADDSAT*//*Label 29*/ 106163,
/*TargetOpcode::G_USUBSAT*//*Label 30*/ 107430,
/*TargetOpcode::G_SSUBSAT*//*Label 31*/ 108059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/*TargetOpcode::G_FADD*//*Label 32*/ 109054,
/*TargetOpcode::G_FSUB*//*Label 33*/ 111200,
/*TargetOpcode::G_FMUL*//*Label 34*/ 112758,
/*TargetOpcode::G_FMA*//*Label 35*/ 113696, 0,
/*TargetOpcode::G_FDIV*//*Label 36*/ 115397, 0, 0, 0, 0, 0, 0, 0, 0,
/*TargetOpcode::G_FNEG*//*Label 37*/ 115563,
/*TargetOpcode::G_FPEXT*//*Label 38*/ 116881,
/*TargetOpcode::G_FPTRUNC*//*Label 39*/ 117085,
/*TargetOpcode::G_FPTOSI*//*Label 40*/ 117325,
/*TargetOpcode::G_FPTOUI*//*Label 41*/ 118564,
/*TargetOpcode::G_SITOFP*//*Label 42*/ 119803,
/*TargetOpcode::G_UITOFP*//*Label 43*/ 120385,
/*TargetOpcode::G_FABS*//*Label 44*/ 120967, 0, 0, 0,
/*TargetOpcode::G_FMINNUM*//*Label 45*/ 121567,
/*TargetOpcode::G_FMAXNUM*//*Label 46*/ 122087, 0, 0,
/*TargetOpcode::G_FMINIMUM*//*Label 47*/ 122607,
/*TargetOpcode::G_FMAXIMUM*//*Label 48*/ 123261, 0, 0,
/*TargetOpcode::G_SMIN*//*Label 49*/ 123915,
/*TargetOpcode::G_SMAX*//*Label 50*/ 124438,
/*TargetOpcode::G_UMIN*//*Label 51*/ 124961,
/*TargetOpcode::G_UMAX*//*Label 52*/ 125850,
/*TargetOpcode::G_ABS*//*Label 53*/ 126739, 0, 0,
/*TargetOpcode::G_BR*//*Label 54*/ 127168, 0, 0,
/*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 55*/ 127232, 0, 0, 0,
/*TargetOpcode::G_CTLZ*//*Label 56*/ 127374, 0,
/*TargetOpcode::G_CTPOP*//*Label 57*/ 127882,
/*TargetOpcode::G_BSWAP*//*Label 58*/ 127974,
/*TargetOpcode::G_BITREVERSE*//*Label 59*/ 128222,
/*TargetOpcode::G_FCEIL*//*Label 60*/ 128586, 0, 0,
/*TargetOpcode::G_FSQRT*//*Label 61*/ 128794,
/*TargetOpcode::G_FFLOOR*//*Label 62*/ 128924,
/*TargetOpcode::G_FRINT*//*Label 63*/ 129132,
/*TargetOpcode::G_FNEARBYINT*//*Label 64*/ 129388,
// Label 0: @175
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 75*/ 8382,
/*GILLT_s32*//*Label 66*/ 196,
/*GILLT_s64*//*Label 67*/ 2179, 0,
/*GILLT_v2s32*//*Label 68*/ 2231,
/*GILLT_v2s64*//*Label 69*/ 2698, 0,
/*GILLT_v4s16*//*Label 70*/ 3726,
/*GILLT_v4s32*//*Label 71*/ 4193, 0, 0,
/*GILLT_v8s8*//*Label 72*/ 5778,
/*GILLT_v8s16*//*Label 73*/ 6245, 0, 0,
/*GILLT_v16s8*//*Label 74*/ 7830,
// Label 66: @196
GIM_Try, /*On fail goto*//*Label 76*/ 2178,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 77*/ 273, // Rule ID 5770 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5770,
GIR_Done,
// Label 77: @273
GIM_Try, /*On fail goto*//*Label 78*/ 340, // Rule ID 5771 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5771,
GIR_Done,
// Label 78: @340
GIM_Try, /*On fail goto*//*Label 79*/ 407, // Rule ID 5805 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5805,
GIR_Done,
// Label 79: @407
GIM_Try, /*On fail goto*//*Label 80*/ 474, // Rule ID 5806 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5806,
GIR_Done,
// Label 80: @474
GIM_Try, /*On fail goto*//*Label 81*/ 541, // Rule ID 2015 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 255:{ *:[i32] })) => (UXTAB:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2015,
GIR_Done,
// Label 81: @541
GIM_Try, /*On fail goto*//*Label 82*/ 608, // Rule ID 2016 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] })) => (UXTAH:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2016,
GIR_Done,
// Label 82: @608
GIM_Try, /*On fail goto*//*Label 83*/ 675, // Rule ID 2239 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] })) => (t2UXTAB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2239,
GIR_Done,
// Label 83: @675
GIM_Try, /*On fail goto*//*Label 84*/ 742, // Rule ID 2240 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] })) => (t2UXTAH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2240,
GIR_Done,
// Label 84: @742
GIM_Try, /*On fail goto*//*Label 85*/ 852, // Rule ID 5549 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] })), GPR:{ *:[i32] }:$Ra) => (SMLATT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLATT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5549,
GIR_Done,
// Label 85: @852
GIM_Try, /*On fail goto*//*Label 86*/ 962, // Rule ID 5586 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (add:{ *:[i32] } (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })), rGPR:{ *:[i32] }:$Ra) => (t2SMLATT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLATT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5586,
GIR_Done,
// Label 86: @962
GIM_Try, /*On fail goto*//*Label 87*/ 1072, // Rule ID 192 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) => (SMLATT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLATT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 192,
GIR_Done,
// Label 87: @1072
GIM_Try, /*On fail goto*//*Label 88*/ 1182, // Rule ID 528 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] }))) => (t2SMLATT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLATT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 528,
GIR_Done,
// Label 88: @1182
GIM_Try, /*On fail goto*//*Label 89*/ 1236, // Rule ID 72 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ADDri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ADDri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 72,
GIR_Done,
// Label 89: @1236
GIM_Try, /*On fail goto*//*Label 90*/ 1290, // Rule ID 414 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ADDri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ADDri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 414,
GIR_Done,
// Label 90: @1290
GIM_Try, /*On fail goto*//*Label 91*/ 1340, // Rule ID 415 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_4095,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$imm) => (t2ADDri12:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ADDri12,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 415,
GIR_Done,
// Label 91: @1340
GIM_Try, /*On fail goto*//*Label 92*/ 1412, // Rule ID 171 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Ra) => (MLA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 171,
GIR_Done,
// Label 92: @1412
GIM_Try, /*On fail goto*//*Label 93*/ 1484, // Rule ID 172 //
GIM_CheckFeatures, GIFBS_IsARM_NoV6,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Ra) => (MLAv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLAv5,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 172,
GIR_Done,
// Label 93: @1484
GIM_Try, /*On fail goto*//*Label 94*/ 1552, // Rule ID 510 //
GIM_CheckFeatures, GIFBS_IsThumb2_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Ra) => (t2MLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 510,
GIR_Done,
// Label 94: @1552
GIM_Try, /*On fail goto*//*Label 95*/ 1620, // Rule ID 180 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SMULH,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm), GPR:{ *:[i32] }:$Ra) => (SMMLA:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMMLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 180,
GIR_Done,
// Label 95: @1620
GIM_Try, /*On fail goto*//*Label 96*/ 1688, // Rule ID 516 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SMULH,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Ra) => (t2SMMLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMMLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 516,
GIR_Done,
// Label 96: @1688
GIM_Try, /*On fail goto*//*Label 97*/ 1760, // Rule ID 5543 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) => (MLA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5543,
GIR_Done,
// Label 97: @1760
GIM_Try, /*On fail goto*//*Label 98*/ 1832, // Rule ID 5544 //
GIM_CheckFeatures, GIFBS_IsARM_NoV6,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)) => (MLAv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLAv5,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5544,
GIR_Done,
// Label 98: @1832
GIM_Try, /*On fail goto*//*Label 99*/ 1900, // Rule ID 5581 //
GIM_CheckFeatures, GIFBS_IsThumb2_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) => (t2MLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5581,
GIR_Done,
// Label 99: @1900
GIM_Try, /*On fail goto*//*Label 100*/ 1968, // Rule ID 5545 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SMULH,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)) => (SMMLA:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMMLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5545,
GIR_Done,
// Label 100: @1968
GIM_Try, /*On fail goto*//*Label 101*/ 2036, // Rule ID 5582 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SMULH,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)) => (t2SMMLA:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMMLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5582,
GIR_Done,
// Label 101: @2036
GIM_Try, /*On fail goto*//*Label 102*/ 2083, // Rule ID 73 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (add:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ADDrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ADDrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 73,
GIR_Done,
// Label 102: @2083
GIM_Try, /*On fail goto*//*Label 103*/ 2130, // Rule ID 416 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (add:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ADDrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ADDrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 416,
GIR_Done,
// Label 103: @2130
GIM_Try, /*On fail goto*//*Label 104*/ 2177, // Rule ID 5563 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// (add:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (t2ADDrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ADDrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5563,
GIR_Done,
// Label 104: @2177
GIM_Reject,
// Label 76: @2178
GIM_Reject,
// Label 67: @2179
GIM_Try, /*On fail goto*//*Label 105*/ 2230, // Rule ID 778 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VADDv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 778,
GIR_Done,
// Label 105: @2230
GIM_Reject,
// Label 68: @2231
GIM_Try, /*On fail goto*//*Label 106*/ 2697,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 107*/ 2316, // Rule ID 5702 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 2574:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) => (VABAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5702,
GIR_Done,
// Label 107: @2316
GIM_Try, /*On fail goto*//*Label 108*/ 2387, // Rule ID 5708 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 2575:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) => (VABAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5708,
GIR_Done,
// Label 108: @2387
GIM_Try, /*On fail goto*//*Label 109*/ 2458, // Rule ID 1199 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 2574:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VABAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1199,
GIR_Done,
// Label 109: @2458
GIM_Try, /*On fail goto*//*Label 110*/ 2529, // Rule ID 1205 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 2575:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VABAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1205,
GIR_Done,
// Label 110: @2529
GIM_Try, /*On fail goto*//*Label 111*/ 2593, // Rule ID 5632 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i32] } (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) => (VMLAv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5632,
GIR_Done,
// Label 111: @2593
GIM_Try, /*On fail goto*//*Label 112*/ 2657, // Rule ID 905 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VMLAv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 905,
GIR_Done,
// Label 112: @2657
GIM_Try, /*On fail goto*//*Label 113*/ 2696, // Rule ID 774 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VADDv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 774,
GIR_Done,
// Label 113: @2696
GIM_Reject,
// Label 106: @2697
GIM_Reject,
// Label 69: @2698
GIM_Try, /*On fail goto*//*Label 114*/ 3725,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 115*/ 2796, // Rule ID 5714 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 2574:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)), QPR:{ *:[v2i64] }:$src1) => (VABALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5714,
GIR_Done,
// Label 115: @2796
GIM_Try, /*On fail goto*//*Label 116*/ 2880, // Rule ID 5717 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 2575:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)), QPR:{ *:[v2i64] }:$src1) => (VABALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5717,
GIR_Done,
// Label 116: @2880
GIM_Try, /*On fail goto*//*Label 117*/ 2964, // Rule ID 1211 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 2574:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm))) => (VABALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1211,
GIR_Done,
// Label 117: @2964
GIM_Try, /*On fail goto*//*Label 118*/ 3048, // Rule ID 1214 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 2575:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm))) => (VABALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1214,
GIR_Done,
// Label 118: @3048
GIM_Try, /*On fail goto*//*Label 119*/ 3113, // Rule ID 798 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 798,
GIR_Done,
// Label 119: @3113
GIM_Try, /*On fail goto*//*Label 120*/ 3178, // Rule ID 797 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 797,
GIR_Done,
// Label 120: @3178
GIM_Try, /*On fail goto*//*Label 121*/ 3243, // Rule ID 786 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 786,
GIR_Done,
// Label 121: @3243
GIM_Try, /*On fail goto*//*Label 122*/ 3308, // Rule ID 796 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 796,
GIR_Done,
// Label 122: @3308
GIM_Try, /*On fail goto*//*Label 123*/ 3373, // Rule ID 795 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 795,
GIR_Done,
// Label 123: @3373
GIM_Try, /*On fail goto*//*Label 124*/ 3425, // Rule ID 5611 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5611,
GIR_Done,
// Label 124: @3425
GIM_Try, /*On fail goto*//*Label 125*/ 3477, // Rule ID 5605 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) => (VADDWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5605,
GIR_Done,
// Label 125: @3477
GIM_Try, /*On fail goto*//*Label 126*/ 3529, // Rule ID 5610 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$Vn) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5610,
GIR_Done,
// Label 126: @3529
GIM_Try, /*On fail goto*//*Label 127*/ 3581, // Rule ID 807 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 807,
GIR_Done,
// Label 127: @3581
GIM_Try, /*On fail goto*//*Label 128*/ 3633, // Rule ID 801 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 801,
GIR_Done,
// Label 128: @3633
GIM_Try, /*On fail goto*//*Label 129*/ 3685, // Rule ID 806 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VADDWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 806,
GIR_Done,
// Label 129: @3685
GIM_Try, /*On fail goto*//*Label 130*/ 3724, // Rule ID 779 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VADDv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 779,
GIR_Done,
// Label 130: @3724
GIM_Reject,
// Label 114: @3725
GIM_Reject,
// Label 70: @3726
GIM_Try, /*On fail goto*//*Label 131*/ 4192,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 132*/ 3811, // Rule ID 5701 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 2574:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) => (VABAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5701,
GIR_Done,
// Label 132: @3811
GIM_Try, /*On fail goto*//*Label 133*/ 3882, // Rule ID 5707 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 2575:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) => (VABAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5707,
GIR_Done,
// Label 133: @3882
GIM_Try, /*On fail goto*//*Label 134*/ 3953, // Rule ID 1198 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 2574:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VABAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1198,
GIR_Done,
// Label 134: @3953
GIM_Try, /*On fail goto*//*Label 135*/ 4024, // Rule ID 1204 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 2575:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VABAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1204,
GIR_Done,
// Label 135: @4024
GIM_Try, /*On fail goto*//*Label 136*/ 4088, // Rule ID 5631 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i16] } (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) => (VMLAv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5631,
GIR_Done,
// Label 136: @4088
GIM_Try, /*On fail goto*//*Label 137*/ 4152, // Rule ID 904 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VMLAv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 904,
GIR_Done,
// Label 137: @4152
GIM_Try, /*On fail goto*//*Label 138*/ 4191, // Rule ID 773 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VADDv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 773,
GIR_Done,
// Label 138: @4191
GIM_Reject,
// Label 131: @4192
GIM_Reject,
// Label 71: @4193
GIM_Try, /*On fail goto*//*Label 139*/ 5777,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 140*/ 4291, // Rule ID 5713 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 2574:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)), QPR:{ *:[v4i32] }:$src1) => (VABALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5713,
GIR_Done,
// Label 140: @4291
GIM_Try, /*On fail goto*//*Label 141*/ 4379, // Rule ID 5716 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 2575:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)), QPR:{ *:[v4i32] }:$src1) => (VABALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5716,
GIR_Done,
// Label 141: @4379
GIM_Try, /*On fail goto*//*Label 142*/ 4467, // Rule ID 1210 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 2574:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm))) => (VABALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1210,
GIR_Done,
// Label 142: @4467
GIM_Try, /*On fail goto*//*Label 143*/ 4555, // Rule ID 1213 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 2575:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm))) => (VABALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1213,
GIR_Done,
// Label 143: @4555
GIM_Try, /*On fail goto*//*Label 144*/ 4630, // Rule ID 5705 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 2574:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VABAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5705,
GIR_Done,
// Label 144: @4630
GIM_Try, /*On fail goto*//*Label 145*/ 4705, // Rule ID 5711 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 2575:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VABAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5711,
GIR_Done,
// Label 145: @4705
GIM_Try, /*On fail goto*//*Label 146*/ 4780, // Rule ID 1202 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 2574:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VABAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1202,
GIR_Done,
// Label 146: @4780
GIM_Try, /*On fail goto*//*Label 147*/ 4855, // Rule ID 1208 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 2575:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VABAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1208,
GIR_Done,
// Label 147: @4855
GIM_Try, /*On fail goto*//*Label 148*/ 4924, // Rule ID 794 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 794,
GIR_Done,
// Label 148: @4924
GIM_Try, /*On fail goto*//*Label 149*/ 4993, // Rule ID 793 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 793,
GIR_Done,
// Label 149: @4993
GIM_Try, /*On fail goto*//*Label 150*/ 5062, // Rule ID 785 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 785,
GIR_Done,
// Label 150: @5062
GIM_Try, /*On fail goto*//*Label 151*/ 5131, // Rule ID 792 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 792,
GIR_Done,
// Label 151: @5131
GIM_Try, /*On fail goto*//*Label 152*/ 5200, // Rule ID 791 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 791,
GIR_Done,
// Label 152: @5200
GIM_Try, /*On fail goto*//*Label 153*/ 5268, // Rule ID 5635 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VMLAv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5635,
GIR_Done,
// Label 153: @5268
GIM_Try, /*On fail goto*//*Label 154*/ 5324, // Rule ID 5609 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5609,
GIR_Done,
// Label 154: @5324
GIM_Try, /*On fail goto*//*Label 155*/ 5380, // Rule ID 5604 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) => (VADDWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5604,
GIR_Done,
// Label 155: @5380
GIM_Try, /*On fail goto*//*Label 156*/ 5436, // Rule ID 5608 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$Vn) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5608,
GIR_Done,
// Label 156: @5436
GIM_Try, /*On fail goto*//*Label 157*/ 5504, // Rule ID 908 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VMLAv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 908,
GIR_Done,
// Label 157: @5504
GIM_Try, /*On fail goto*//*Label 158*/ 5560, // Rule ID 805 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 805,
GIR_Done,
// Label 158: @5560
GIM_Try, /*On fail goto*//*Label 159*/ 5616, // Rule ID 800 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 800,
GIR_Done,
// Label 159: @5616
GIM_Try, /*On fail goto*//*Label 160*/ 5672, // Rule ID 804 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VADDWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 804,
GIR_Done,
// Label 160: @5672
GIM_Try, /*On fail goto*//*Label 161*/ 5715, // Rule ID 777 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VADDv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 777,
GIR_Done,
// Label 161: @5715
GIM_Try, /*On fail goto*//*Label 162*/ 5776, // Rule ID 3590 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (add:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VADDi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VADDi32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3590,
GIR_Done,
// Label 162: @5776
GIM_Reject,
// Label 139: @5777
GIM_Reject,
// Label 72: @5778
GIM_Try, /*On fail goto*//*Label 163*/ 6244,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 164*/ 5863, // Rule ID 5700 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 2574:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) => (VABAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5700,
GIR_Done,
// Label 164: @5863
GIM_Try, /*On fail goto*//*Label 165*/ 5934, // Rule ID 5706 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 2575:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) => (VABAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5706,
GIR_Done,
// Label 165: @5934
GIM_Try, /*On fail goto*//*Label 166*/ 6005, // Rule ID 1197 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (intrinsic_wo_chain:{ *:[v8i8] } 2574:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VABAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1197,
GIR_Done,
// Label 166: @6005
GIM_Try, /*On fail goto*//*Label 167*/ 6076, // Rule ID 1203 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (intrinsic_wo_chain:{ *:[v8i8] } 2575:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VABAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1203,
GIR_Done,
// Label 167: @6076
GIM_Try, /*On fail goto*//*Label 168*/ 6140, // Rule ID 5630 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i8] } (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) => (VMLAv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5630,
GIR_Done,
// Label 168: @6140
GIM_Try, /*On fail goto*//*Label 169*/ 6204, // Rule ID 903 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VMLAv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 903,
GIR_Done,
// Label 169: @6204
GIM_Try, /*On fail goto*//*Label 170*/ 6243, // Rule ID 772 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VADDv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 772,
GIR_Done,
// Label 170: @6243
GIM_Reject,
// Label 163: @6244
GIM_Reject,
// Label 73: @6245
GIM_Try, /*On fail goto*//*Label 171*/ 7829,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 172*/ 6343, // Rule ID 5712 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 2574:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)), QPR:{ *:[v8i16] }:$src1) => (VABALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5712,
GIR_Done,
// Label 172: @6343
GIM_Try, /*On fail goto*//*Label 173*/ 6431, // Rule ID 5715 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 2575:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)), QPR:{ *:[v8i16] }:$src1) => (VABALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5715,
GIR_Done,
// Label 173: @6431
GIM_Try, /*On fail goto*//*Label 174*/ 6519, // Rule ID 1209 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 2574:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm))) => (VABALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1209,
GIR_Done,
// Label 174: @6519
GIM_Try, /*On fail goto*//*Label 175*/ 6607, // Rule ID 1212 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/2, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/2, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/2, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 2575:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm))) => (VABALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABALuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1212,
GIR_Done,
// Label 175: @6607
GIM_Try, /*On fail goto*//*Label 176*/ 6682, // Rule ID 5704 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 2574:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) => (VABAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5704,
GIR_Done,
// Label 176: @6682
GIM_Try, /*On fail goto*//*Label 177*/ 6757, // Rule ID 5710 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 2575:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) => (VABAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5710,
GIR_Done,
// Label 177: @6757
GIM_Try, /*On fail goto*//*Label 178*/ 6832, // Rule ID 1201 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 2574:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VABAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1201,
GIR_Done,
// Label 178: @6832
GIM_Try, /*On fail goto*//*Label 179*/ 6907, // Rule ID 1207 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 2575:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VABAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1207,
GIR_Done,
// Label 179: @6907
GIM_Try, /*On fail goto*//*Label 180*/ 6976, // Rule ID 790 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 790,
GIR_Done,
// Label 180: @6976
GIM_Try, /*On fail goto*//*Label 181*/ 7045, // Rule ID 789 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 789,
GIR_Done,
// Label 181: @7045
GIM_Try, /*On fail goto*//*Label 182*/ 7114, // Rule ID 784 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 784,
GIR_Done,
// Label 182: @7114
GIM_Try, /*On fail goto*//*Label 183*/ 7183, // Rule ID 788 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 788,
GIR_Done,
// Label 183: @7183
GIM_Try, /*On fail goto*//*Label 184*/ 7252, // Rule ID 787 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 787,
GIR_Done,
// Label 184: @7252
GIM_Try, /*On fail goto*//*Label 185*/ 7320, // Rule ID 5634 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) => (VMLAv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5634,
GIR_Done,
// Label 185: @7320
GIM_Try, /*On fail goto*//*Label 186*/ 7376, // Rule ID 5607 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5607,
GIR_Done,
// Label 186: @7376
GIM_Try, /*On fail goto*//*Label 187*/ 7432, // Rule ID 5603 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) => (VADDWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5603,
GIR_Done,
// Label 187: @7432
GIM_Try, /*On fail goto*//*Label 188*/ 7488, // Rule ID 5606 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), QPR:{ *:[v8i16] }:$Vn) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5606,
GIR_Done,
// Label 188: @7488
GIM_Try, /*On fail goto*//*Label 189*/ 7556, // Rule ID 907 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VMLAv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 907,
GIR_Done,
// Label 189: @7556
GIM_Try, /*On fail goto*//*Label 190*/ 7612, // Rule ID 803 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 803,
GIR_Done,
// Label 190: @7612
GIM_Try, /*On fail goto*//*Label 191*/ 7668, // Rule ID 799 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 799,
GIR_Done,
// Label 191: @7668
GIM_Try, /*On fail goto*//*Label 192*/ 7724, // Rule ID 802 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VADDWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDWuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 802,
GIR_Done,
// Label 192: @7724
GIM_Try, /*On fail goto*//*Label 193*/ 7767, // Rule ID 776 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VADDv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 776,
GIR_Done,
// Label 193: @7767
GIM_Try, /*On fail goto*//*Label 194*/ 7828, // Rule ID 3586 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (add:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VADDi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VADDi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3586,
GIR_Done,
// Label 194: @7828
GIM_Reject,
// Label 171: @7829
GIM_Reject,
// Label 74: @7830
GIM_Try, /*On fail goto*//*Label 195*/ 8381,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 196*/ 7915, // Rule ID 5703 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 2574:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) => (VABAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5703,
GIR_Done,
// Label 196: @7915
GIM_Try, /*On fail goto*//*Label 197*/ 7990, // Rule ID 5709 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 2575:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) => (VABAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5709,
GIR_Done,
// Label 197: @7990
GIM_Try, /*On fail goto*//*Label 198*/ 8065, // Rule ID 1200 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (intrinsic_wo_chain:{ *:[v16i8] } 2574:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VABAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1200,
GIR_Done,
// Label 198: @8065
GIM_Try, /*On fail goto*//*Label 199*/ 8140, // Rule ID 1206 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (intrinsic_wo_chain:{ *:[v16i8] } 2575:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VABAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABAuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1206,
GIR_Done,
// Label 199: @8140
GIM_Try, /*On fail goto*//*Label 200*/ 8208, // Rule ID 5633 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v16i8] } (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) => (VMLAv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5633,
GIR_Done,
// Label 200: @8208
GIM_Try, /*On fail goto*//*Label 201*/ 8276, // Rule ID 906 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VMLAv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLAv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 906,
GIR_Done,
// Label 201: @8276
GIM_Try, /*On fail goto*//*Label 202*/ 8319, // Rule ID 775 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VADDv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 775,
GIR_Done,
// Label 202: @8319
GIM_Try, /*On fail goto*//*Label 203*/ 8380, // Rule ID 3582 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (add:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VADDi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VADDi8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3582,
GIR_Done,
// Label 203: @8380
GIM_Reject,
// Label 195: @8381
GIM_Reject,
// Label 75: @8382
GIM_Reject,
// Label 1: @8383
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 213*/ 11423,
/*GILLT_s32*//*Label 204*/ 8404,
/*GILLT_s64*//*Label 205*/ 8912, 0,
/*GILLT_v2s32*//*Label 206*/ 8964,
/*GILLT_v2s64*//*Label 207*/ 9079, 0,
/*GILLT_v4s16*//*Label 208*/ 9615,
/*GILLT_v4s32*//*Label 209*/ 9730, 0, 0,
/*GILLT_v8s8*//*Label 210*/ 10427,
/*GILLT_v8s16*//*Label 211*/ 10542, 0, 0,
/*GILLT_v16s8*//*Label 212*/ 11239,
// Label 204: @8404
GIM_Try, /*On fail goto*//*Label 214*/ 8911,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 215*/ 8468, // Rule ID 96 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, GPR:{ *:[i32] }:$Rn) => (RSBri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::RSBri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 96,
GIR_Done,
// Label 215: @8468
GIM_Try, /*On fail goto*//*Label 216*/ 8522, // Rule ID 434 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, rGPR:{ *:[i32] }:$Rn) => (t2RSBri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2RSBri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 434,
GIR_Done,
// Label 216: @8522
GIM_Try, /*On fail goto*//*Label 217*/ 8576, // Rule ID 76 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (SUBri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SUBri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 76,
GIR_Done,
// Label 217: @8576
GIM_Try, /*On fail goto*//*Label 218*/ 8630, // Rule ID 418 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2SUBri:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SUBri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 418,
GIR_Done,
// Label 218: @8630
GIM_Try, /*On fail goto*//*Label 219*/ 8680, // Rule ID 419 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_4095,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_4095>>:$imm) => (t2SUBri12:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SUBri12,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 419,
GIR_Done,
// Label 219: @8680
GIM_Try, /*On fail goto*//*Label 220*/ 8748, // Rule ID 173 //
GIM_CheckFeatures, GIFBS_HasV6T2_IsARM_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[i32] } GPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)) => (MLS:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MLS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 173,
GIR_Done,
// Label 220: @8748
GIM_Try, /*On fail goto*//*Label 221*/ 8816, // Rule ID 511 //
GIM_CheckFeatures, GIFBS_IsThumb2_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)) => (t2MLS:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MLS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 511,
GIR_Done,
// Label 221: @8816
GIM_Try, /*On fail goto*//*Label 222*/ 8863, // Rule ID 77 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (sub:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SUBrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SUBrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 77,
GIR_Done,
// Label 222: @8863
GIM_Try, /*On fail goto*//*Label 223*/ 8910, // Rule ID 420 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (sub:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SUBrr:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SUBrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 420,
GIR_Done,
// Label 223: @8910
GIM_Reject,
// Label 214: @8911
GIM_Reject,
// Label 205: @8912
GIM_Try, /*On fail goto*//*Label 224*/ 8963, // Rule ID 982 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (sub:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VSUBv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 982,
GIR_Done,
// Label 224: @8963
GIM_Reject,
// Label 206: @8964
GIM_Try, /*On fail goto*//*Label 225*/ 9078,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 226*/ 9042, // Rule ID 933 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VMLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 933,
GIR_Done,
// Label 226: @9042
GIM_Try, /*On fail goto*//*Label 227*/ 9077, // Rule ID 978 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (sub:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VSUBv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 978,
GIR_Done,
// Label 227: @9077
GIM_Reject,
// Label 225: @9078
GIM_Reject,
// Label 207: @9079
GIM_Try, /*On fail goto*//*Label 228*/ 9614,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 229*/ 9158, // Rule ID 1002 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1002,
GIR_Done,
// Label 229: @9158
GIM_Try, /*On fail goto*//*Label 230*/ 9223, // Rule ID 1001 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1001,
GIR_Done,
// Label 230: @9223
GIM_Try, /*On fail goto*//*Label 231*/ 9288, // Rule ID 990 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 990,
GIR_Done,
// Label 231: @9288
GIM_Try, /*On fail goto*//*Label 232*/ 9353, // Rule ID 1000 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1000,
GIR_Done,
// Label 232: @9353
GIM_Try, /*On fail goto*//*Label 233*/ 9418, // Rule ID 999 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 999,
GIR_Done,
// Label 233: @9418
GIM_Try, /*On fail goto*//*Label 234*/ 9470, // Rule ID 1011 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1011,
GIR_Done,
// Label 234: @9470
GIM_Try, /*On fail goto*//*Label 235*/ 9522, // Rule ID 1005 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBWsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1005,
GIR_Done,
// Label 235: @9522
GIM_Try, /*On fail goto*//*Label 236*/ 9574, // Rule ID 1010 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)) => (VSUBWuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1010,
GIR_Done,
// Label 236: @9574
GIM_Try, /*On fail goto*//*Label 237*/ 9613, // Rule ID 983 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VSUBv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 983,
GIR_Done,
// Label 237: @9613
GIM_Reject,
// Label 228: @9614
GIM_Reject,
// Label 208: @9615
GIM_Try, /*On fail goto*//*Label 238*/ 9729,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 239*/ 9693, // Rule ID 932 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VMLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 932,
GIR_Done,
// Label 239: @9693
GIM_Try, /*On fail goto*//*Label 240*/ 9728, // Rule ID 977 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (sub:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VSUBv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 977,
GIR_Done,
// Label 240: @9728
GIM_Reject,
// Label 238: @9729
GIM_Reject,
// Label 209: @9730
GIM_Try, /*On fail goto*//*Label 241*/ 10426,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 242*/ 9809, // Rule ID 998 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 998,
GIR_Done,
// Label 242: @9809
GIM_Try, /*On fail goto*//*Label 243*/ 9878, // Rule ID 997 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 997,
GIR_Done,
// Label 243: @9878
GIM_Try, /*On fail goto*//*Label 244*/ 9947, // Rule ID 989 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 989,
GIR_Done,
// Label 244: @9947
GIM_Try, /*On fail goto*//*Label 245*/ 10016, // Rule ID 996 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 996,
GIR_Done,
// Label 245: @10016
GIM_Try, /*On fail goto*//*Label 246*/ 10085, // Rule ID 995 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 995,
GIR_Done,
// Label 246: @10085
GIM_Try, /*On fail goto*//*Label 247*/ 10153, // Rule ID 936 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) => (VMLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 936,
GIR_Done,
// Label 247: @10153
GIM_Try, /*On fail goto*//*Label 248*/ 10209, // Rule ID 1009 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1009,
GIR_Done,
// Label 248: @10209
GIM_Try, /*On fail goto*//*Label 249*/ 10265, // Rule ID 1004 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBWsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1004,
GIR_Done,
// Label 249: @10265
GIM_Try, /*On fail goto*//*Label 250*/ 10321, // Rule ID 1008 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)) => (VSUBWuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1008,
GIR_Done,
// Label 250: @10321
GIM_Try, /*On fail goto*//*Label 251*/ 10364, // Rule ID 981 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VSUBv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 981,
GIR_Done,
// Label 251: @10364
GIM_Try, /*On fail goto*//*Label 252*/ 10425, // Rule ID 3602 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (sub:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VSUBi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSUBi32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3602,
GIR_Done,
// Label 252: @10425
GIM_Reject,
// Label 241: @10426
GIM_Reject,
// Label 210: @10427
GIM_Try, /*On fail goto*//*Label 253*/ 10541,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 254*/ 10505, // Rule ID 931 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VMLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 931,
GIR_Done,
// Label 254: @10505
GIM_Try, /*On fail goto*//*Label 255*/ 10540, // Rule ID 976 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (sub:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VSUBv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 976,
GIR_Done,
// Label 255: @10540
GIM_Reject,
// Label 253: @10541
GIM_Reject,
// Label 211: @10542
GIM_Try, /*On fail goto*//*Label 256*/ 11238,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 257*/ 10621, // Rule ID 994 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 994,
GIR_Done,
// Label 257: @10621
GIM_Try, /*On fail goto*//*Label 258*/ 10690, // Rule ID 993 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 993,
GIR_Done,
// Label 258: @10690
GIM_Try, /*On fail goto*//*Label 259*/ 10759, // Rule ID 988 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 988,
GIR_Done,
// Label 259: @10759
GIM_Try, /*On fail goto*//*Label 260*/ 10828, // Rule ID 992 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 992,
GIR_Done,
// Label 260: @10828
GIM_Try, /*On fail goto*//*Label 261*/ 10897, // Rule ID 991 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 991,
GIR_Done,
// Label 261: @10897
GIM_Try, /*On fail goto*//*Label 262*/ 10965, // Rule ID 935 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) => (VMLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 935,
GIR_Done,
// Label 262: @10965
GIM_Try, /*On fail goto*//*Label 263*/ 11021, // Rule ID 1007 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ANYEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1007,
GIR_Done,
// Label 263: @11021
GIM_Try, /*On fail goto*//*Label 264*/ 11077, // Rule ID 1003 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBWsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1003,
GIR_Done,
// Label 264: @11077
GIM_Try, /*On fail goto*//*Label 265*/ 11133, // Rule ID 1006 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)) => (VSUBWuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBWuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1006,
GIR_Done,
// Label 265: @11133
GIM_Try, /*On fail goto*//*Label 266*/ 11176, // Rule ID 980 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VSUBv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 980,
GIR_Done,
// Label 266: @11176
GIM_Try, /*On fail goto*//*Label 267*/ 11237, // Rule ID 3598 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (sub:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VSUBi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSUBi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3598,
GIR_Done,
// Label 267: @11237
GIM_Reject,
// Label 256: @11238
GIM_Reject,
// Label 212: @11239
GIM_Try, /*On fail goto*//*Label 268*/ 11422,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 269*/ 11317, // Rule ID 934 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_MUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sub:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) => (VMLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLSv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 934,
GIR_Done,
// Label 269: @11317
GIM_Try, /*On fail goto*//*Label 270*/ 11360, // Rule ID 979 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (sub:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VSUBv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 979,
GIR_Done,
// Label 270: @11360
GIM_Try, /*On fail goto*//*Label 271*/ 11421, // Rule ID 3594 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (sub:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VSUBi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSUBi8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3594,
GIR_Done,
// Label 271: @11421
GIM_Reject,
// Label 268: @11422
GIM_Reject,
// Label 213: @11423
GIM_Reject,
// Label 2: @11424
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 279*/ 12268,
/*GILLT_s32*//*Label 272*/ 11445, 0, 0,
/*GILLT_v2s32*//*Label 273*/ 11764, 0, 0,
/*GILLT_v4s16*//*Label 274*/ 11816,
/*GILLT_v4s32*//*Label 275*/ 11868, 0, 0,
/*GILLT_v8s8*//*Label 276*/ 11984,
/*GILLT_v8s16*//*Label 277*/ 12036, 0, 0,
/*GILLT_v16s8*//*Label 278*/ 12152,
// Label 272: @11445
GIM_Try, /*On fail goto*//*Label 280*/ 11763,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 281*/ 11540, // Rule ID 186 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 16,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (mul:{ *:[i32] } (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) => (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULTT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 186,
GIR_Done,
// Label 281: @11540
GIM_Try, /*On fail goto*//*Label 282*/ 11625, // Rule ID 522 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 16,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (mul:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 16:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16:{ *:[i32] })) => (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULTT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 522,
GIR_Done,
// Label 282: @11625
GIM_Try, /*On fail goto*//*Label 283*/ 11672, // Rule ID 169 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (MUL:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MUL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 169,
GIR_Done,
// Label 283: @11672
GIM_Try, /*On fail goto*//*Label 284*/ 11719, // Rule ID 170 //
GIM_CheckFeatures, GIFBS_IsARM_NoV6_UseMulOps,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// (mul:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (MULv5:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MULv5,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 170,
GIR_Done,
// Label 284: @11719
GIM_Try, /*On fail goto*//*Label 285*/ 11762, // Rule ID 509 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (mul:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2MUL:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MUL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 509,
GIR_Done,
// Label 285: @11762
GIM_Reject,
// Label 280: @11763
GIM_Reject,
// Label 273: @11764
GIM_Try, /*On fail goto*//*Label 286*/ 11815, // Rule ID 853 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMULv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 853,
GIR_Done,
// Label 286: @11815
GIM_Reject,
// Label 274: @11816
GIM_Try, /*On fail goto*//*Label 287*/ 11867, // Rule ID 852 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMULv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 852,
GIR_Done,
// Label 287: @11867
GIM_Reject,
// Label 275: @11868
GIM_Try, /*On fail goto*//*Label 288*/ 11983,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 289*/ 11921, // Rule ID 856 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMULv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 856,
GIR_Done,
// Label 289: @11921
GIM_Try, /*On fail goto*//*Label 290*/ 11982, // Rule ID 3560 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mul:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMULi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULi32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3560,
GIR_Done,
// Label 290: @11982
GIM_Reject,
// Label 288: @11983
GIM_Reject,
// Label 276: @11984
GIM_Try, /*On fail goto*//*Label 291*/ 12035, // Rule ID 851 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (mul:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 851,
GIR_Done,
// Label 291: @12035
GIM_Reject,
// Label 277: @12036
GIM_Try, /*On fail goto*//*Label 292*/ 12151,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 293*/ 12089, // Rule ID 855 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMULv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 855,
GIR_Done,
// Label 293: @12089
GIM_Try, /*On fail goto*//*Label 294*/ 12150, // Rule ID 3556 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mul:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMULi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3556,
GIR_Done,
// Label 294: @12150
GIM_Reject,
// Label 292: @12151
GIM_Reject,
// Label 278: @12152
GIM_Try, /*On fail goto*//*Label 295*/ 12267,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 296*/ 12205, // Rule ID 854 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (mul:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMULv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 854,
GIR_Done,
// Label 296: @12205
GIM_Try, /*On fail goto*//*Label 297*/ 12266, // Rule ID 3552 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mul:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMULi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULi8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3552,
GIR_Done,
// Label 297: @12266
GIM_Reject,
// Label 295: @12267
GIM_Reject,
// Label 279: @12268
GIM_Reject,
// Label 3: @12269
GIM_Try, /*On fail goto*//*Label 298*/ 12370,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 299*/ 12326, // Rule ID 195 //
GIM_CheckFeatures, GIFBS_HasDivideInARM_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (sdiv:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SDIV:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SDIV,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 195,
GIR_Done,
// Label 299: @12326
GIM_Try, /*On fail goto*//*Label 300*/ 12369, // Rule ID 539 //
GIM_CheckFeatures, GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (sdiv:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SDIV:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SDIV,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 539,
GIR_Done,
// Label 300: @12369
GIM_Reject,
// Label 298: @12370
GIM_Reject,
// Label 4: @12371
GIM_Try, /*On fail goto*//*Label 301*/ 12472,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 302*/ 12428, // Rule ID 196 //
GIM_CheckFeatures, GIFBS_HasDivideInARM_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (udiv:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (UDIV:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UDIV,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 196,
GIR_Done,
// Label 302: @12428
GIM_Try, /*On fail goto*//*Label 303*/ 12471, // Rule ID 540 //
GIM_CheckFeatures, GIFBS_HasDivideInThumb_HasV8MBaseline_IsThumb,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (udiv:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UDIV:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UDIV,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 540,
GIR_Done,
// Label 303: @12471
GIM_Reject,
// Label 301: @12472
GIM_Reject,
// Label 5: @12473
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 317*/ 15232,
/*GILLT_s32*//*Label 304*/ 12494,
/*GILLT_s64*//*Label 305*/ 14136,
/*GILLT_v2s1*//*Label 306*/ 14188,
/*GILLT_v2s32*//*Label 307*/ 14294,
/*GILLT_v2s64*//*Label 308*/ 14346,
/*GILLT_v4s1*//*Label 309*/ 14462,
/*GILLT_v4s16*//*Label 310*/ 14568,
/*GILLT_v4s32*//*Label 311*/ 14620, 0,
/*GILLT_v8s1*//*Label 312*/ 14736,
/*GILLT_v8s8*//*Label 313*/ 14842,
/*GILLT_v8s16*//*Label 314*/ 14894, 0,
/*GILLT_v16s1*//*Label 315*/ 15010,
/*GILLT_v16s8*//*Label 316*/ 15116,
// Label 304: @12494
GIM_Try, /*On fail goto*//*Label 318*/ 14135,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 319*/ 12567, // Rule ID 1878 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16711935,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Src, 8:{ *:[i32] }), 16711935:{ *:[i32] }) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Src
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1878,
GIR_Done,
// Label 319: @12567
GIM_Try, /*On fail goto*//*Label 320*/ 12630, // Rule ID 2120 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16711935,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 8:{ *:[i32] }), 16711935:{ *:[i32] }) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Src, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Src
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2120,
GIR_Done,
// Label 320: @12630
GIM_Try, /*On fail goto*//*Label 321*/ 12672, // Rule ID 2012 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 255,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 255:{ *:[i32] }) => (UXTB:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2012,
GIR_Done,
// Label 321: @12672
GIM_Try, /*On fail goto*//*Label 322*/ 12714, // Rule ID 2013 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 65535,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 65535:{ *:[i32] }) => (UXTH:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2013,
GIR_Done,
// Label 322: @12714
GIM_Try, /*On fail goto*//*Label 323*/ 12756, // Rule ID 2014 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16711935,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$Src, 16711935:{ *:[i32] }) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2014,
GIR_Done,
// Label 323: @12756
GIM_Try, /*On fail goto*//*Label 324*/ 12798, // Rule ID 2236 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 255,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }) => (t2UXTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2236,
GIR_Done,
// Label 324: @12798
GIM_Try, /*On fail goto*//*Label 325*/ 12840, // Rule ID 2237 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 65535,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }) => (t2UXTH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2237,
GIR_Done,
// Label 325: @12840
GIM_Try, /*On fail goto*//*Label 326*/ 12882, // Rule ID 2238 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16711935,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 16711935:{ *:[i32] }) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2238,
GIR_Done,
// Label 326: @12882
GIM_Try, /*On fail goto*//*Label 327*/ 12957, // Rule ID 5539 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (and:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm), GPR:{ *:[i32] }:$Rn) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5539,
GIR_Done,
// Label 327: @12957
GIM_Try, /*On fail goto*//*Label 328*/ 13032, // Rule ID 5572 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (and:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm), rGPR:{ *:[i32] }:$Rn) => (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5572,
GIR_Done,
// Label 328: @13032
GIM_Try, /*On fail goto*//*Label 329*/ 13107, // Rule ID 5538 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (and:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5538,
GIR_Done,
// Label 329: @13107
GIM_Try, /*On fail goto*//*Label 330*/ 13182, // Rule ID 5571 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (and:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5571,
GIR_Done,
// Label 330: @13182
GIM_Try, /*On fail goto*//*Label 331*/ 13257, // Rule ID 5537 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm)) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5537,
GIR_Done,
// Label 331: @13257
GIM_Try, /*On fail goto*//*Label 332*/ 13332, // Rule ID 5570 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)) => (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5570,
GIR_Done,
// Label 332: @13332
GIM_Try, /*On fail goto*//*Label 333*/ 13407, // Rule ID 159 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm, -1:{ *:[i32] })) => (BICri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 159,
GIR_Done,
// Label 333: @13407
GIM_Try, /*On fail goto*//*Label 334*/ 13482, // Rule ID 497 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] })) => (t2BICri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 497,
GIR_Done,
// Label 334: @13482
GIM_Try, /*On fail goto*//*Label 335*/ 13550, // Rule ID 5540 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), GPR:{ *:[i32] }:$Rn) => (BICrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5540,
GIR_Done,
// Label 335: @13550
GIM_Try, /*On fail goto*//*Label 336*/ 13618, // Rule ID 5573 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2BICrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5573,
GIR_Done,
// Label 336: @13618
GIM_Try, /*On fail goto*//*Label 337*/ 13686, // Rule ID 160 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (BICrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BICrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 160,
GIR_Done,
// Label 337: @13686
GIM_Try, /*On fail goto*//*Label 338*/ 13754, // Rule ID 498 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (t2BICrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BICrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 498,
GIR_Done,
// Label 338: @13754
GIM_Try, /*On fail goto*//*Label 339*/ 13793, // Rule ID 352 //
GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 255,
// (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, 255:{ *:[i32] }) => (tUXTB:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tUXTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 352,
GIR_Done,
// Label 339: @13793
GIM_Try, /*On fail goto*//*Label 340*/ 13832, // Rule ID 353 //
GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 65535,
// (and:{ *:[i32] } tGPR:{ *:[i32] }:$Rm, 65535:{ *:[i32] }) => (tUXTH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tUXTH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 353,
GIR_Done,
// Label 340: @13832
GIM_Try, /*On fail goto*//*Label 341*/ 13886, // Rule ID 147 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ANDri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ANDri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 147,
GIR_Done,
// Label 341: @13886
GIM_Try, /*On fail goto*//*Label 342*/ 13940, // Rule ID 488 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ANDri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ANDri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 488,
GIR_Done,
// Label 342: @13940
GIM_Try, /*On fail goto*//*Label 343*/ 13990, // Rule ID 163 //
GIM_CheckFeatures, GIFBS_HasV6T2_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckCxxInsnPredicate, /*MI*/1, /*FnId*/GIPFP_MI_Predicate_bf_inv_mask_imm,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) => (BFC:{ *:[i32] } GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BFC,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 163,
GIR_Done,
// Label 343: @13990
GIM_Try, /*On fail goto*//*Label 344*/ 14040, // Rule ID 500 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckCxxInsnPredicate, /*MI*/1, /*FnId*/GIPFP_MI_Predicate_bf_inv_mask_imm,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_bf_inv_mask_imm>>:$imm) => (t2BFC:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2BFC,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 500,
GIR_Done,
// Label 344: @14040
GIM_Try, /*On fail goto*//*Label 345*/ 14087, // Rule ID 148 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (and:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ANDrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ANDrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 148,
GIR_Done,
// Label 345: @14087
GIM_Try, /*On fail goto*//*Label 346*/ 14134, // Rule ID 489 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ANDrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ANDrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 489,
GIR_Done,
// Label 346: @14134
GIM_Reject,
// Label 318: @14135
GIM_Reject,
// Label 305: @14136
GIM_Try, /*On fail goto*//*Label 347*/ 14187, // Rule ID 2520 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (and:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS) => (VANDd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2520,
GIR_Done,
// Label 347: @14187
GIM_Reject,
// Label 306: @14188
GIM_Try, /*On fail goto*//*Label 348*/ 14293, // Rule ID 1850 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (and:{ *:[v2i1] } VCCR:{ *:[v2i1] }:$p1, VCCR:{ *:[v2i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v2i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2ANDrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1850,
GIR_Done,
// Label 348: @14293
GIM_Reject,
// Label 307: @14294
GIM_Try, /*On fail goto*//*Label 349*/ 14345, // Rule ID 1149 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (and:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VANDd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1149,
GIR_Done,
// Label 349: @14345
GIM_Reject,
// Label 308: @14346
GIM_Try, /*On fail goto*//*Label 350*/ 14461,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_Try, /*On fail goto*//*Label 351*/ 14399, // Rule ID 2523 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (and:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS) => (VANDq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2523,
GIR_Done,
// Label 351: @14399
GIM_Try, /*On fail goto*//*Label 352*/ 14460, // Rule ID 3464 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (and:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) => (MVE_VAND:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VAND,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3464,
GIR_Done,
// Label 352: @14460
GIM_Reject,
// Label 350: @14461
GIM_Reject,
// Label 309: @14462
GIM_Try, /*On fail goto*//*Label 353*/ 14567, // Rule ID 1851 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v4i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2ANDrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1851,
GIR_Done,
// Label 353: @14567
GIM_Reject,
// Label 310: @14568
GIM_Try, /*On fail goto*//*Label 354*/ 14619, // Rule ID 2519 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (and:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS) => (VANDd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2519,
GIR_Done,
// Label 354: @14619
GIM_Reject,
// Label 311: @14620
GIM_Try, /*On fail goto*//*Label 355*/ 14735,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 356*/ 14673, // Rule ID 1150 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (and:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VANDq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1150,
GIR_Done,
// Label 356: @14673
GIM_Try, /*On fail goto*//*Label 357*/ 14734, // Rule ID 3460 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (and:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VAND:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VAND,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3460,
GIR_Done,
// Label 357: @14734
GIM_Reject,
// Label 355: @14735
GIM_Reject,
// Label 312: @14736
GIM_Try, /*On fail goto*//*Label 358*/ 14841, // Rule ID 1852 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v8i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2ANDrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1852,
GIR_Done,
// Label 358: @14841
GIM_Reject,
// Label 313: @14842
GIM_Try, /*On fail goto*//*Label 359*/ 14893, // Rule ID 2518 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (and:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS) => (VANDd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2518,
GIR_Done,
// Label 359: @14893
GIM_Reject,
// Label 314: @14894
GIM_Try, /*On fail goto*//*Label 360*/ 15009,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 361*/ 14947, // Rule ID 2522 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (and:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS) => (VANDq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2522,
GIR_Done,
// Label 361: @14947
GIM_Try, /*On fail goto*//*Label 362*/ 15008, // Rule ID 3456 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (and:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VAND:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VAND,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3456,
GIR_Done,
// Label 362: @15008
GIM_Reject,
// Label 360: @15009
GIM_Reject,
// Label 315: @15010
GIM_Try, /*On fail goto*//*Label 363*/ 15115, // Rule ID 1849 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v16i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2ANDrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1849,
GIR_Done,
// Label 363: @15115
GIM_Reject,
// Label 316: @15116
GIM_Try, /*On fail goto*//*Label 364*/ 15231,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 365*/ 15169, // Rule ID 2521 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (and:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS) => (VANDq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VANDq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2521,
GIR_Done,
// Label 365: @15169
GIM_Try, /*On fail goto*//*Label 366*/ 15230, // Rule ID 3452 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (and:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VAND:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VAND,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3452,
GIR_Done,
// Label 366: @15230
GIM_Reject,
// Label 364: @15231
GIM_Reject,
// Label 317: @15232
GIM_Reject,
// Label 6: @15233
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 380*/ 20472,
/*GILLT_s32*//*Label 367*/ 15254,
/*GILLT_s64*//*Label 368*/ 19376,
/*GILLT_v2s1*//*Label 369*/ 19428,
/*GILLT_v2s32*//*Label 370*/ 19534,
/*GILLT_v2s64*//*Label 371*/ 19586,
/*GILLT_v4s1*//*Label 372*/ 19702,
/*GILLT_v4s16*//*Label 373*/ 19808,
/*GILLT_v4s32*//*Label 374*/ 19860, 0,
/*GILLT_v8s1*//*Label 375*/ 19976,
/*GILLT_v8s8*//*Label 376*/ 20082,
/*GILLT_v8s16*//*Label 377*/ 20134, 0,
/*GILLT_v16s1*//*Label 378*/ 20250,
/*GILLT_v16s8*//*Label 379*/ 20356,
// Label 367: @15254
GIM_Try, /*On fail goto*//*Label 381*/ 19375,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 382*/ 15384, // Rule ID 5755 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 8,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
// MIs[4] Rm
GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 24,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] })) => (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REVSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5755,
GIR_Done,
// Label 382: @15384
GIM_Try, /*On fail goto*//*Label 383*/ 15504, // Rule ID 5797 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 8,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 255,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
// MIs[4] Rm
GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 24,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] }), (sra:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] })) => (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REVSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5797,
GIR_Done,
// Label 383: @15504
GIM_Try, /*On fail goto*//*Label 384*/ 15624, // Rule ID 1941 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 24,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 16,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
// MIs[4] Rm
GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 8,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 255,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } GPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] })) => (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REVSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1941,
GIR_Done,
// Label 384: @15624
GIM_Try, /*On fail goto*//*Label 385*/ 15744, // Rule ID 2207 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 24,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 16,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/1, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
// MIs[4] Rm
GIM_CheckIsSameOperand, /*MI*/4, /*OpIdx*/1, /*OtherMI*/2, /*OtherOpIdx*/1,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 8,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 255,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (sra:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 24:{ *:[i32] }), 16:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 8:{ *:[i32] }), 255:{ *:[i32] })) => (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REVSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2207,
GIR_Done,
// Label 385: @15744
GIM_Try, /*On fail goto*//*Label 386*/ 15861, // Rule ID 5553 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_pkh_asr_amt,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5553,
GIR_Done,
// Label 386: @15861
GIM_Try, /*On fail goto*//*Label 387*/ 15978, // Rule ID 5590 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_pkh_asr_amt,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5590,
GIR_Done,
// Label 387: @15978
GIM_Try, /*On fail goto*//*Label 388*/ 16095, // Rule ID 5760 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm1_15,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5760,
GIR_Done,
// Label 388: @16095
GIM_Try, /*On fail goto*//*Label 389*/ 16212, // Rule ID 5802 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm1_15,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5802,
GIR_Done,
// Label 389: @16212
GIM_Try, /*On fail goto*//*Label 390*/ 16329, // Rule ID 5552 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_pkh_lsl_amt,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5552,
GIR_Done,
// Label 390: @16329
GIM_Try, /*On fail goto*//*Label 391*/ 16446, // Rule ID 5589 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_pkh_lsl_amt,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/0, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/4, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/4, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/4, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/4, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5589,
GIR_Done,
// Label 391: @16446
GIM_Try, /*On fail goto*//*Label 392*/ 16563, // Rule ID 203 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_pkh_asr_amt,
// MIs[4] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 203,
GIR_Done,
// Label 392: @16563
GIM_Try, /*On fail goto*//*Label 393*/ 16680, // Rule ID 547 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_pkh_asr_amt,
// MIs[4] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_asr_amt>>:$sh), 65535:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 547,
GIR_Done,
// Label 393: @16680
GIM_Try, /*On fail goto*//*Label 394*/ 16797, // Rule ID 1946 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_imm1_15,
// MIs[4] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1946,
GIR_Done,
// Label 394: @16797
GIM_Try, /*On fail goto*//*Label 395*/ 16914, // Rule ID 2212 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_imm1_15,
// MIs[4] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (and:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh), 65535:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2212,
GIR_Done,
// Label 395: @16914
GIM_Try, /*On fail goto*//*Label 396*/ 17031, // Rule ID 202 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_pkh_lsl_amt,
// MIs[4] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 202,
GIR_Done,
// Label 396: @17031
GIM_Try, /*On fail goto*//*Label 397*/ 17148, // Rule ID 546 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/4, /*MI*/3, /*OpIdx*/2, // MIs[4]
GIM_CheckOpcode, /*MI*/4, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/4, /*Predicate*/GIPFP_I64_Predicate_pkh_lsl_amt,
// MIs[4] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
GIM_CheckIsSafeToFold, /*InsnID*/4,
// (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_pkh_lsl_amt>>:$sh), 4294901760:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/4, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 546,
GIR_Done,
// Label 397: @17148
GIM_Try, /*On fail goto*//*Label 398*/ 17236, // Rule ID 1942 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 4294901760:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1942,
GIR_Done,
// Label 398: @17236
GIM_Try, /*On fail goto*//*Label 399*/ 17324, // Rule ID 2208 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src2, 4294901760:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2208,
GIR_Done,
// Label 399: @17324
GIM_Try, /*On fail goto*//*Label 400*/ 17412, // Rule ID 5756 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, 4294901760:{ *:[i32] }), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5756,
GIR_Done,
// Label 400: @17412
GIM_Try, /*On fail goto*//*Label 401*/ 17500, // Rule ID 5798 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/2, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src2, 4294901760:{ *:[i32] }), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5798,
GIR_Done,
// Label 401: @17500
GIM_Try, /*On fail goto*//*Label 402*/ 17596, // Rule ID 1945 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1945,
GIR_Done,
// Label 402: @17596
GIM_Try, /*On fail goto*//*Label 403*/ 17692, // Rule ID 2211 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (sra:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2211,
GIR_Done,
// Label 403: @17692
GIM_Try, /*On fail goto*//*Label 404*/ 17788, // Rule ID 1944 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1944,
GIR_Done,
// Label 404: @17788
GIM_Try, /*On fail goto*//*Label 405*/ 17884, // Rule ID 2210 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 4294901760,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] }), (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2210,
GIR_Done,
// Label 405: @17884
GIM_Try, /*On fail goto*//*Label 406*/ 17980, // Rule ID 1943 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] }), (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1943,
GIR_Done,
// Label 406: @17980
GIM_Try, /*On fail goto*//*Label 407*/ 18076, // Rule ID 2209 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, 65535,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/2, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] }), (shl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2209,
GIR_Done,
// Label 407: @18076
GIM_Try, /*On fail goto*//*Label 408*/ 18172, // Rule ID 5759 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
// MIs[2] Operand 1
// No operand predicates
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (sra:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5759,
GIR_Done,
// Label 408: @18172
GIM_Try, /*On fail goto*//*Label 409*/ 18268, // Rule ID 5801 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ASHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
// MIs[2] Operand 1
// No operand predicates
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (sra:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5801,
GIR_Done,
// Label 409: @18268
GIM_Try, /*On fail goto*//*Label 410*/ 18364, // Rule ID 5758 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16,
// MIs[2] Operand 1
// No operand predicates
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (srl:{ *:[i32] } GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (PKHTB:{ *:[i32] } GPRnopc:{ *:[i32] }:$src1, GPRnopc:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5758,
GIR_Done,
// Label 410: @18364
GIM_Try, /*On fail goto*//*Label 411*/ 18460, // Rule ID 5800 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_LSHR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16,
// MIs[2] Operand 1
// No operand predicates
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 4294901760,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (srl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 4294901760:{ *:[i32] })) => (t2PKHTB:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5800,
GIR_Done,
// Label 411: @18460
GIM_Try, /*On fail goto*//*Label 412*/ 18556, // Rule ID 5757 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
// MIs[2] Operand 1
// No operand predicates
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, 65535:{ *:[i32] })) => (PKHBT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5757,
GIR_Done,
// Label 412: @18556
GIM_Try, /*On fail goto*//*Label 413*/ 18652, // Rule ID 5799 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm16_31,
// MIs[2] Operand 1
// No operand predicates
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_AND,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/3, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/3, /*Op*/2, 65535,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (or:{ *:[i32] } (shl:{ *:[i32] } rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh), (and:{ *:[i32] } rGPR:{ *:[i32] }:$src1, 65535:{ *:[i32] })) => (t2PKHBT:{ *:[i32] } rGPR:{ *:[i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_imm16_31>>:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2PKHBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src2
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5799,
GIR_Done,
// Label 413: @18652
GIM_Try, /*On fail goto*//*Label 414*/ 18727, // Rule ID 5577 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (or:{ *:[i32] } (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm), rGPR:{ *:[i32] }:$Rn) => (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5577,
GIR_Done,
// Label 414: @18727
GIM_Try, /*On fail goto*//*Label 415*/ 18802, // Rule ID 5576 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (or:{ *:[i32] } (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5576,
GIR_Done,
// Label 415: @18802
GIM_Try, /*On fail goto*//*Label 416*/ 18877, // Rule ID 5575 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckConstantInt, /*MI*/1, /*Op*/1, -1,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)) => (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5575,
GIR_Done,
// Label 416: @18877
GIM_Try, /*On fail goto*//*Label 417*/ 18952, // Rule ID 503 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[2] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] })) => (t2ORNri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 503,
GIR_Done,
// Label 417: @18952
GIM_Try, /*On fail goto*//*Label 418*/ 19020, // Rule ID 5578 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (or:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }), rGPR:{ *:[i32] }:$Rn) => (t2ORNrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5578,
GIR_Done,
// Label 418: @19020
GIM_Try, /*On fail goto*//*Label 419*/ 19088, // Rule ID 504 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_XOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/1, /*Op*/2, -1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] })) => (t2ORNrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORNrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 504,
GIR_Done,
// Label 419: @19088
GIM_Try, /*On fail goto*//*Label 420*/ 19130, // Rule ID 1871 //
GIM_CheckFeatures, GIFBS_HasV6T2_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 4294901760,
// (or:{ *:[i32] } GPR:{ *:[i32] }:$src, 4294901760:{ *:[i32] }) => (MOVTi16:{ *:[i32] } GPR:{ *:[i32] }:$src, 65535:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MOVTi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/65535,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1871,
GIR_Done,
// Label 420: @19130
GIM_Try, /*On fail goto*//*Label 421*/ 19172, // Rule ID 2102 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 4294901760,
// (or:{ *:[i32] } rGPR:{ *:[i32] }:$src, 4294901760:{ *:[i32] }) => (t2MOVTi16:{ *:[i32] } rGPR:{ *:[i32] }:$src, 65535:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MOVTi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/65535,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2102,
GIR_Done,
// Label 421: @19172
GIM_Try, /*On fail goto*//*Label 422*/ 19226, // Rule ID 151 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (ORRri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ORRri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 151,
GIR_Done,
// Label 422: @19226
GIM_Try, /*On fail goto*//*Label 423*/ 19280, // Rule ID 491 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2ORRri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORRri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 491,
GIR_Done,
// Label 423: @19280
GIM_Try, /*On fail goto*//*Label 424*/ 19327, // Rule ID 152 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (or:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (ORRrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ORRrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 152,
GIR_Done,
// Label 424: @19327
GIM_Try, /*On fail goto*//*Label 425*/ 19374, // Rule ID 492 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (or:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ORRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ORRrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 492,
GIR_Done,
// Label 425: @19374
GIM_Reject,
// Label 381: @19375
GIM_Reject,
// Label 368: @19376
GIM_Try, /*On fail goto*//*Label 426*/ 19427, // Rule ID 2526 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (or:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS) => (VORRd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2526,
GIR_Done,
// Label 426: @19427
GIM_Reject,
// Label 369: @19428
GIM_Try, /*On fail goto*//*Label 427*/ 19533, // Rule ID 1858 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (or:{ *:[v2i1] } VCCR:{ *:[v2i1] }:$p1, VCCR:{ *:[v2i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v2i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2ORRrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1858,
GIR_Done,
// Label 427: @19533
GIM_Reject,
// Label 370: @19534
GIM_Try, /*On fail goto*//*Label 428*/ 19585, // Rule ID 1153 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (or:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VORRd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1153,
GIR_Done,
// Label 428: @19585
GIM_Reject,
// Label 371: @19586
GIM_Try, /*On fail goto*//*Label 429*/ 19701,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_Try, /*On fail goto*//*Label 430*/ 19639, // Rule ID 2529 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (or:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS) => (VORRq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2529,
GIR_Done,
// Label 430: @19639
GIM_Try, /*On fail goto*//*Label 431*/ 19700, // Rule ID 3478 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (or:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) => (MVE_VORR:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VORR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3478,
GIR_Done,
// Label 431: @19700
GIM_Reject,
// Label 429: @19701
GIM_Reject,
// Label 372: @19702
GIM_Try, /*On fail goto*//*Label 432*/ 19807, // Rule ID 1859 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (or:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v4i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2ORRrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1859,
GIR_Done,
// Label 432: @19807
GIM_Reject,
// Label 373: @19808
GIM_Try, /*On fail goto*//*Label 433*/ 19859, // Rule ID 2525 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (or:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS) => (VORRd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2525,
GIR_Done,
// Label 433: @19859
GIM_Reject,
// Label 374: @19860
GIM_Try, /*On fail goto*//*Label 434*/ 19975,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 435*/ 19913, // Rule ID 1154 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (or:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VORRq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1154,
GIR_Done,
// Label 435: @19913
GIM_Try, /*On fail goto*//*Label 436*/ 19974, // Rule ID 3474 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (or:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VORR:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VORR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3474,
GIR_Done,
// Label 436: @19974
GIM_Reject,
// Label 434: @19975
GIM_Reject,
// Label 375: @19976
GIM_Try, /*On fail goto*//*Label 437*/ 20081, // Rule ID 1860 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (or:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v8i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2ORRrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1860,
GIR_Done,
// Label 437: @20081
GIM_Reject,
// Label 376: @20082
GIM_Try, /*On fail goto*//*Label 438*/ 20133, // Rule ID 2524 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (or:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS) => (VORRd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2524,
GIR_Done,
// Label 438: @20133
GIM_Reject,
// Label 377: @20134
GIM_Try, /*On fail goto*//*Label 439*/ 20249,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 440*/ 20187, // Rule ID 2528 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (or:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS) => (VORRq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2528,
GIR_Done,
// Label 440: @20187
GIM_Try, /*On fail goto*//*Label 441*/ 20248, // Rule ID 3470 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (or:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VORR:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VORR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3470,
GIR_Done,
// Label 441: @20248
GIM_Reject,
// Label 439: @20249
GIM_Reject,
// Label 378: @20250
GIM_Try, /*On fail goto*//*Label 442*/ 20355, // Rule ID 1857 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (or:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v16i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2ORRrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1857,
GIR_Done,
// Label 442: @20355
GIM_Reject,
// Label 379: @20356
GIM_Try, /*On fail goto*//*Label 443*/ 20471,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 444*/ 20409, // Rule ID 2527 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (or:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS) => (VORRq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VORRq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2527,
GIR_Done,
// Label 444: @20409
GIM_Try, /*On fail goto*//*Label 445*/ 20470, // Rule ID 3466 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (or:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VORR:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VORR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3466,
GIR_Done,
// Label 445: @20470
GIM_Reject,
// Label 443: @20471
GIM_Reject,
// Label 380: @20472
GIM_Reject,
// Label 7: @20473
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 459*/ 21990,
/*GILLT_s32*//*Label 446*/ 20494,
/*GILLT_s64*//*Label 447*/ 20894,
/*GILLT_v2s1*//*Label 448*/ 20946,
/*GILLT_v2s32*//*Label 449*/ 21052,
/*GILLT_v2s64*//*Label 450*/ 21104,
/*GILLT_v4s1*//*Label 451*/ 21220,
/*GILLT_v4s16*//*Label 452*/ 21326,
/*GILLT_v4s32*//*Label 453*/ 21378, 0,
/*GILLT_v8s1*//*Label 454*/ 21494,
/*GILLT_v8s8*//*Label 455*/ 21600,
/*GILLT_v8s16*//*Label 456*/ 21652, 0,
/*GILLT_v16s1*//*Label 457*/ 21768,
/*GILLT_v16s8*//*Label 458*/ 21874,
// Label 446: @20494
GIM_Try, /*On fail goto*//*Label 460*/ 20893,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 461*/ 20554, // Rule ID 5580 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/1, -1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (xor:{ *:[i32] } -1:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2MVNi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MVNi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5580,
GIR_Done,
// Label 461: @20554
GIM_Try, /*On fail goto*//*Label 462*/ 20604, // Rule ID 506 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (xor:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm, -1:{ *:[i32] }) => (t2MVNi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MVNi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 506,
GIR_Done,
// Label 462: @20604
GIM_Try, /*On fail goto*//*Label 463*/ 20647, // Rule ID 507 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
// (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }) => (t2MVNr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MVNr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 507,
GIR_Done,
// Label 463: @20647
GIM_Try, /*On fail goto*//*Label 464*/ 20690, // Rule ID 165 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, -1,
// (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rm, -1:{ *:[i32] }) => (MVNr:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVNr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 165,
GIR_Done,
// Label 464: @20690
GIM_Try, /*On fail goto*//*Label 465*/ 20744, // Rule ID 155 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) => (EORri:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::EORri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 155,
GIR_Done,
// Label 465: @20744
GIM_Try, /*On fail goto*//*Label 466*/ 20798, // Rule ID 494 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) => (t2EORri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2EORri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 494,
GIR_Done,
// Label 466: @20798
GIM_Try, /*On fail goto*//*Label 467*/ 20845, // Rule ID 156 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (xor:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (EORrr:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::EORrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 156,
GIR_Done,
// Label 467: @20845
GIM_Try, /*On fail goto*//*Label 468*/ 20892, // Rule ID 495 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2EORrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2EORrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 495,
GIR_Done,
// Label 468: @20892
GIM_Reject,
// Label 460: @20893
GIM_Reject,
// Label 447: @20894
GIM_Try, /*On fail goto*//*Label 469*/ 20945, // Rule ID 2532 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (xor:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS) => (VEORd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$LHS, DPR:{ *:[v1i64] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2532,
GIR_Done,
// Label 469: @20945
GIM_Reject,
// Label 448: @20946
GIM_Try, /*On fail goto*//*Label 470*/ 21051, // Rule ID 1854 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (xor:{ *:[v2i1] } VCCR:{ *:[v2i1] }:$p1, VCCR:{ *:[v2i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v2i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v2i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2EORrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1854,
GIR_Done,
// Label 470: @21051
GIM_Reject,
// Label 449: @21052
GIM_Try, /*On fail goto*//*Label 471*/ 21103, // Rule ID 1151 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VEORd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1151,
GIR_Done,
// Label 471: @21103
GIM_Reject,
// Label 450: @21104
GIM_Try, /*On fail goto*//*Label 472*/ 21219,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_Try, /*On fail goto*//*Label 473*/ 21157, // Rule ID 2535 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (xor:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS) => (VEORq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$LHS, QPR:{ *:[v2i64] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2535,
GIR_Done,
// Label 473: @21157
GIM_Try, /*On fail goto*//*Label 474*/ 21218, // Rule ID 3492 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (xor:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) => (MVE_VEOR:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VEOR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3492,
GIR_Done,
// Label 474: @21218
GIM_Reject,
// Label 472: @21219
GIM_Reject,
// Label 451: @21220
GIM_Try, /*On fail goto*//*Label 475*/ 21325, // Rule ID 1855 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (xor:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v4i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2EORrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1855,
GIR_Done,
// Label 475: @21325
GIM_Reject,
// Label 452: @21326
GIM_Try, /*On fail goto*//*Label 476*/ 21377, // Rule ID 2531 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (xor:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS) => (VEORd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$LHS, DPR:{ *:[v4i16] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2531,
GIR_Done,
// Label 476: @21377
GIM_Reject,
// Label 453: @21378
GIM_Try, /*On fail goto*//*Label 477*/ 21493,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 478*/ 21431, // Rule ID 1152 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VEORq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1152,
GIR_Done,
// Label 478: @21431
GIM_Try, /*On fail goto*//*Label 479*/ 21492, // Rule ID 3488 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (xor:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VEOR:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VEOR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3488,
GIR_Done,
// Label 479: @21492
GIM_Reject,
// Label 477: @21493
GIM_Reject,
// Label 454: @21494
GIM_Try, /*On fail goto*//*Label 480*/ 21599, // Rule ID 1856 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (xor:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v8i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2EORrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1856,
GIR_Done,
// Label 480: @21599
GIM_Reject,
// Label 455: @21600
GIM_Try, /*On fail goto*//*Label 481*/ 21651, // Rule ID 2530 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (xor:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS) => (VEORd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$LHS, DPR:{ *:[v8i8] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2530,
GIR_Done,
// Label 481: @21651
GIM_Reject,
// Label 456: @21652
GIM_Try, /*On fail goto*//*Label 482*/ 21767,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 483*/ 21705, // Rule ID 2534 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (xor:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS) => (VEORq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$LHS, QPR:{ *:[v8i16] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2534,
GIR_Done,
// Label 483: @21705
GIM_Try, /*On fail goto*//*Label 484*/ 21766, // Rule ID 3484 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (xor:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VEOR:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VEOR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3484,
GIR_Done,
// Label 484: @21766
GIM_Reject,
// Label 482: @21767
GIM_Reject,
// Label 457: @21768
GIM_Try, /*On fail goto*//*Label 485*/ 21873, // Rule ID 1853 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::VCCRRegClassID,
// (xor:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) => (COPY_TO_REGCLASS:{ *:[v16i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // p2
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // p1
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2EORrr,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::VCCRRegClassID,
// GIR_Coverage, 1853,
GIR_Done,
// Label 485: @21873
GIM_Reject,
// Label 458: @21874
GIM_Try, /*On fail goto*//*Label 486*/ 21989,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 487*/ 21927, // Rule ID 2533 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (xor:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS) => (VEORq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$LHS, QPR:{ *:[v16i8] }:$RHS)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VEORq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2533,
GIR_Done,
// Label 487: @21927
GIM_Try, /*On fail goto*//*Label 488*/ 21988, // Rule ID 3480 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (xor:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VEOR:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VEOR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3480,
GIR_Done,
// Label 488: @21988
GIM_Reject,
// Label 486: @21989
GIM_Reject,
// Label 459: @21990
GIM_Reject,
// Label 8: @21991
GIM_Try, /*On fail goto*//*Label 489*/ 22384,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/5, 16, /*)*//*default:*//*Label 494*/ 22383,
/*GILLT_v2s64*//*Label 490*/ 22013, 0, 0,
/*GILLT_v4s32*//*Label 491*/ 22074, 0, 0, 0,
/*GILLT_v8s16*//*Label 492*/ 22178, 0, 0,
/*GILLT_v16s8*//*Label 493*/ 22322,
// Label 490: @22013
GIM_Try, /*On fail goto*//*Label 495*/ 22073, // Rule ID 3113 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (concat_vectors:{ *:[v2i64] } DPR:{ *:[v1i64] }:$Dn, DPR:{ *:[v1i64] }:$Dm) => (REG_SEQUENCE:{ *:[v2i64] } QPR:{ *:[i32] }, DPR:{ *:[v1i64] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v1i64] }:$Dm, dsub_1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/2,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, ARM::DPRRegClassID,
// GIR_Coverage, 3113,
GIR_Done,
// Label 495: @22073
GIM_Reject,
// Label 491: @22074
GIM_Try, /*On fail goto*//*Label 496*/ 22177,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 497*/ 22136, // Rule ID 3114 //
GIM_CheckFeatures, GIFBS_HasNEON,
// (concat_vectors:{ *:[v4i32] } DPR:{ *:[v2i32] }:$Dn, DPR:{ *:[v2i32] }:$Dm) => (REG_SEQUENCE:{ *:[v4i32] } QPR:{ *:[i32] }, DPR:{ *:[v2i32] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v2i32] }:$Dm, dsub_1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/2,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, ARM::DPRRegClassID,
// GIR_Coverage, 3114,
GIR_Done,
// Label 497: @22136
GIM_Try, /*On fail goto*//*Label 498*/ 22176, // Rule ID 3117 //
GIM_CheckFeatures, GIFBS_HasNEON,
// (concat_vectors:{ *:[v4f32] } DPR:{ *:[v2f32] }:$Dn, DPR:{ *:[v2f32] }:$Dm) => (REG_SEQUENCE:{ *:[v4f32] } QPR:{ *:[i32] }, DPR:{ *:[v2f32] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v2f32] }:$Dm, dsub_1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/2,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, ARM::DPRRegClassID,
// GIR_Coverage, 3117,
GIR_Done,
// Label 498: @22176
GIM_Reject,
// Label 496: @22177
GIM_Reject,
// Label 492: @22178
GIM_Try, /*On fail goto*//*Label 499*/ 22321,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 500*/ 22240, // Rule ID 3115 //
GIM_CheckFeatures, GIFBS_HasNEON,
// (concat_vectors:{ *:[v8i16] } DPR:{ *:[v4i16] }:$Dn, DPR:{ *:[v4i16] }:$Dm) => (REG_SEQUENCE:{ *:[v8i16] } QPR:{ *:[i32] }, DPR:{ *:[v4i16] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v4i16] }:$Dm, dsub_1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/2,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, ARM::DPRRegClassID,
// GIR_Coverage, 3115,
GIR_Done,
// Label 500: @22240
GIM_Try, /*On fail goto*//*Label 501*/ 22280, // Rule ID 3118 //
GIM_CheckFeatures, GIFBS_HasNEON,
// (concat_vectors:{ *:[v8f16] } DPR:{ *:[v4f16] }:$Dn, DPR:{ *:[v4f16] }:$Dm) => (REG_SEQUENCE:{ *:[v8f16] } QPR:{ *:[i32] }, DPR:{ *:[v4f16] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v4f16] }:$Dm, dsub_1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/2,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, ARM::DPRRegClassID,
// GIR_Coverage, 3118,
GIR_Done,
// Label 501: @22280
GIM_Try, /*On fail goto*//*Label 502*/ 22320, // Rule ID 3119 //
GIM_CheckFeatures, GIFBS_HasNEON,
// (concat_vectors:{ *:[v8bf16] } DPR:{ *:[v4bf16] }:$Dn, DPR:{ *:[v4bf16] }:$Dm) => (REG_SEQUENCE:{ *:[v8bf16] } QPR:{ *:[i32] }, DPR:{ *:[v4bf16] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v4bf16] }:$Dm, dsub_1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/2,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, ARM::DPRRegClassID,
// GIR_Coverage, 3119,
GIR_Done,
// Label 502: @22320
GIM_Reject,
// Label 499: @22321
GIM_Reject,
// Label 493: @22322
GIM_Try, /*On fail goto*//*Label 503*/ 22382, // Rule ID 3116 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (concat_vectors:{ *:[v16i8] } DPR:{ *:[v8i8] }:$Dn, DPR:{ *:[v8i8] }:$Dm) => (REG_SEQUENCE:{ *:[v16i8] } QPR:{ *:[i32] }, DPR:{ *:[v8i8] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v8i8] }:$Dm, dsub_1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*SubRegIndex*/2,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/3, ARM::DPRRegClassID,
// GIR_Coverage, 3116,
GIR_Done,
// Label 503: @22382
GIM_Reject,
// Label 494: @22383
GIM_Reject,
// Label 489: @22384
GIM_Reject,
// Label 9: @22385
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 513*/ 33294,
/*GILLT_s32*//*Label 504*/ 22406,
/*GILLT_s64*//*Label 505*/ 22546, 0,
/*GILLT_v2s32*//*Label 506*/ 23491,
/*GILLT_v2s64*//*Label 507*/ 24436, 0,
/*GILLT_v4s16*//*Label 508*/ 26359,
/*GILLT_v4s32*//*Label 509*/ 27591, 0, 0,
/*GILLT_v8s8*//*Label 510*/ 29514,
/*GILLT_v8s16*//*Label 511*/ 30026, 0, 0,
/*GILLT_v16s8*//*Label 512*/ 32236,
// Label 504: @22406
GIM_Try, /*On fail goto*//*Label 514*/ 22545,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 515*/ 22447, // Rule ID 705 //
GIM_CheckFeatures, GIFBS_HasFPRegs,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (bitconvert:{ *:[i32] } SPR:{ *:[f32] }:$Sn) => (VMOVRS:{ *:[i32] } SPR:{ *:[f32] }:$Sn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVRS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 705,
GIR_Done,
// Label 515: @22447
GIM_Try, /*On fail goto*//*Label 516*/ 22482, // Rule ID 706 //
GIM_CheckFeatures, GIFBS_HasFPRegs_UseVMOVSR,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$Rt) => (VMOVSR:{ *:[f32] } GPR:{ *:[i32] }:$Rt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVSR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rt
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 706,
GIR_Done,
// Label 516: @22482
GIM_Try, /*On fail goto*//*Label 517*/ 22544, // Rule ID 2733 //
GIM_CheckFeatures, GIFBS_DontUseVMOVSR_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (VMOVDRR:{ *:[f64] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$a), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VMOVDRR,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2733,
GIR_Done,
// Label 517: @22544
GIM_Reject,
// Label 514: @22545
GIM_Reject,
// Label 505: @22546
GIM_Try, /*On fail goto*//*Label 518*/ 22580, // Rule ID 2735 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2735,
GIR_Done,
// Label 518: @22580
GIM_Try, /*On fail goto*//*Label 519*/ 22614, // Rule ID 2736 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v1i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2736,
GIR_Done,
// Label 519: @22614
GIM_Try, /*On fail goto*//*Label 520*/ 22648, // Rule ID 2751 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2751,
GIR_Done,
// Label 520: @22648
GIM_Try, /*On fail goto*//*Label 521*/ 22682, // Rule ID 2752 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2752,
GIR_Done,
// Label 521: @22682
GIM_Try, /*On fail goto*//*Label 522*/ 22716, // Rule ID 2753 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2753,
GIR_Done,
// Label 522: @22716
GIM_Try, /*On fail goto*//*Label 523*/ 22750, // Rule ID 2754 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2754,
GIR_Done,
// Label 523: @22750
GIM_Try, /*On fail goto*//*Label 524*/ 22784, // Rule ID 2755 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2755,
GIR_Done,
// Label 524: @22784
GIM_Try, /*On fail goto*//*Label 525*/ 22818, // Rule ID 2756 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2756,
GIR_Done,
// Label 525: @22818
GIM_Try, /*On fail goto*//*Label 526*/ 22852, // Rule ID 2757 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v1i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2757,
GIR_Done,
// Label 526: @22852
GIM_Try, /*On fail goto*//*Label 527*/ 22886, // Rule ID 2758 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v1i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2758,
GIR_Done,
// Label 527: @22886
GIM_Try, /*On fail goto*//*Label 528*/ 22920, // Rule ID 2759 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v1i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2759,
GIR_Done,
// Label 528: @22920
GIM_Try, /*On fail goto*//*Label 529*/ 22954, // Rule ID 2760 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v1i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2760,
GIR_Done,
// Label 529: @22954
GIM_Try, /*On fail goto*//*Label 530*/ 22988, // Rule ID 2761 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v1i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2761,
GIR_Done,
// Label 530: @22988
GIM_Try, /*On fail goto*//*Label 531*/ 23022, // Rule ID 2762 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v1i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2762,
GIR_Done,
// Label 531: @23022
GIM_Try, /*On fail goto*//*Label 532*/ 23061, // Rule ID 2843 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) => (VREV64d32:{ *:[f64] } DPR:{ *:[v2f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2843,
GIR_Done,
// Label 532: @23061
GIM_Try, /*On fail goto*//*Label 533*/ 23100, // Rule ID 2844 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) => (VREV64d32:{ *:[f64] } DPR:{ *:[v2i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2844,
GIR_Done,
// Label 533: @23100
GIM_Try, /*On fail goto*//*Label 534*/ 23139, // Rule ID 2845 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) => (VREV64d16:{ *:[f64] } DPR:{ *:[v4f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2845,
GIR_Done,
// Label 534: @23139
GIM_Try, /*On fail goto*//*Label 535*/ 23178, // Rule ID 2846 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v4bf16] }:$src) => (VREV64d16:{ *:[f64] } DPR:{ *:[v4bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2846,
GIR_Done,
// Label 535: @23178
GIM_Try, /*On fail goto*//*Label 536*/ 23217, // Rule ID 2847 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) => (VREV64d16:{ *:[f64] } DPR:{ *:[v4i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2847,
GIR_Done,
// Label 536: @23217
GIM_Try, /*On fail goto*//*Label 537*/ 23256, // Rule ID 2848 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) => (VREV64d8:{ *:[f64] } DPR:{ *:[v8i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2848,
GIR_Done,
// Label 537: @23256
GIM_Try, /*On fail goto*//*Label 538*/ 23295, // Rule ID 2849 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) => (VREV64d32:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2849,
GIR_Done,
// Label 538: @23295
GIM_Try, /*On fail goto*//*Label 539*/ 23334, // Rule ID 2850 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) => (VREV64d32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2850,
GIR_Done,
// Label 539: @23334
GIM_Try, /*On fail goto*//*Label 540*/ 23373, // Rule ID 2851 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src) => (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2851,
GIR_Done,
// Label 540: @23373
GIM_Try, /*On fail goto*//*Label 541*/ 23412, // Rule ID 2852 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v4bf16] }:$src) => (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2852,
GIR_Done,
// Label 541: @23412
GIM_Try, /*On fail goto*//*Label 542*/ 23451, // Rule ID 2853 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) => (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2853,
GIR_Done,
// Label 542: @23451
GIM_Try, /*On fail goto*//*Label 543*/ 23490, // Rule ID 2854 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) => (VREV64d8:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2854,
GIR_Done,
// Label 543: @23490
GIM_Reject,
// Label 506: @23491
GIM_Try, /*On fail goto*//*Label 544*/ 23525, // Rule ID 2737 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v2f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2737,
GIR_Done,
// Label 544: @23525
GIM_Try, /*On fail goto*//*Label 545*/ 23559, // Rule ID 2738 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v2i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2738,
GIR_Done,
// Label 545: @23559
GIM_Try, /*On fail goto*//*Label 546*/ 23593, // Rule ID 2763 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v2f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2763,
GIR_Done,
// Label 546: @23593
GIM_Try, /*On fail goto*//*Label 547*/ 23627, // Rule ID 2764 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v2f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2764,
GIR_Done,
// Label 547: @23627
GIM_Try, /*On fail goto*//*Label 548*/ 23661, // Rule ID 2765 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v2f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2765,
GIR_Done,
// Label 548: @23661
GIM_Try, /*On fail goto*//*Label 549*/ 23695, // Rule ID 2766 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v2f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2766,
GIR_Done,
// Label 549: @23695
GIM_Try, /*On fail goto*//*Label 550*/ 23729, // Rule ID 2767 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v2f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2767,
GIR_Done,
// Label 550: @23729
GIM_Try, /*On fail goto*//*Label 551*/ 23763, // Rule ID 2768 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v2f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2768,
GIR_Done,
// Label 551: @23763
GIM_Try, /*On fail goto*//*Label 552*/ 23797, // Rule ID 2769 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v2i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2769,
GIR_Done,
// Label 552: @23797
GIM_Try, /*On fail goto*//*Label 553*/ 23831, // Rule ID 2770 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v2i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2770,
GIR_Done,
// Label 553: @23831
GIM_Try, /*On fail goto*//*Label 554*/ 23865, // Rule ID 2771 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v2i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2771,
GIR_Done,
// Label 554: @23865
GIM_Try, /*On fail goto*//*Label 555*/ 23899, // Rule ID 2772 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v2i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2772,
GIR_Done,
// Label 555: @23899
GIM_Try, /*On fail goto*//*Label 556*/ 23933, // Rule ID 2773 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v2i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2773,
GIR_Done,
// Label 556: @23933
GIM_Try, /*On fail goto*//*Label 557*/ 23967, // Rule ID 2774 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v2i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2774,
GIR_Done,
// Label 557: @23967
GIM_Try, /*On fail goto*//*Label 558*/ 24006, // Rule ID 2855 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) => (VREV64d32:{ *:[v2f32] } DPR:{ *:[f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2855,
GIR_Done,
// Label 558: @24006
GIM_Try, /*On fail goto*//*Label 559*/ 24045, // Rule ID 2856 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) => (VREV64d32:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2856,
GIR_Done,
// Label 559: @24045
GIM_Try, /*On fail goto*//*Label 560*/ 24084, // Rule ID 2857 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src) => (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2857,
GIR_Done,
// Label 560: @24084
GIM_Try, /*On fail goto*//*Label 561*/ 24123, // Rule ID 2858 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v4bf16] }:$src) => (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2858,
GIR_Done,
// Label 561: @24123
GIM_Try, /*On fail goto*//*Label 562*/ 24162, // Rule ID 2859 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) => (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2859,
GIR_Done,
// Label 562: @24162
GIM_Try, /*On fail goto*//*Label 563*/ 24201, // Rule ID 2860 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) => (VREV32d8:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2860,
GIR_Done,
// Label 563: @24201
GIM_Try, /*On fail goto*//*Label 564*/ 24240, // Rule ID 2861 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) => (VREV64d32:{ *:[v2i32] } DPR:{ *:[f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2861,
GIR_Done,
// Label 564: @24240
GIM_Try, /*On fail goto*//*Label 565*/ 24279, // Rule ID 2862 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) => (VREV64d32:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2862,
GIR_Done,
// Label 565: @24279
GIM_Try, /*On fail goto*//*Label 566*/ 24318, // Rule ID 2863 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src) => (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2863,
GIR_Done,
// Label 566: @24318
GIM_Try, /*On fail goto*//*Label 567*/ 24357, // Rule ID 2864 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v4bf16] }:$src) => (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2864,
GIR_Done,
// Label 567: @24357
GIM_Try, /*On fail goto*//*Label 568*/ 24396, // Rule ID 2865 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) => (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2865,
GIR_Done,
// Label 568: @24396
GIM_Try, /*On fail goto*//*Label 569*/ 24435, // Rule ID 2866 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) => (VREV32d8:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2866,
GIR_Done,
// Label 569: @24435
GIM_Reject,
// Label 507: @24436
GIM_Try, /*On fail goto*//*Label 570*/ 24470, // Rule ID 2743 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2743,
GIR_Done,
// Label 570: @24470
GIM_Try, /*On fail goto*//*Label 571*/ 24504, // Rule ID 2744 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2744,
GIR_Done,
// Label 571: @24504
GIM_Try, /*On fail goto*//*Label 572*/ 24538, // Rule ID 2797 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2797,
GIR_Done,
// Label 572: @24538
GIM_Try, /*On fail goto*//*Label 573*/ 24572, // Rule ID 2798 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2798,
GIR_Done,
// Label 573: @24572
GIM_Try, /*On fail goto*//*Label 574*/ 24606, // Rule ID 2799 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2799,
GIR_Done,
// Label 574: @24606
GIM_Try, /*On fail goto*//*Label 575*/ 24640, // Rule ID 2800 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2800,
GIR_Done,
// Label 575: @24640
GIM_Try, /*On fail goto*//*Label 576*/ 24674, // Rule ID 2801 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2801,
GIR_Done,
// Label 576: @24674
GIM_Try, /*On fail goto*//*Label 577*/ 24708, // Rule ID 2802 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2802,
GIR_Done,
// Label 577: @24708
GIM_Try, /*On fail goto*//*Label 578*/ 24742, // Rule ID 2803 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2803,
GIR_Done,
// Label 578: @24742
GIM_Try, /*On fail goto*//*Label 579*/ 24776, // Rule ID 2804 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2804,
GIR_Done,
// Label 579: @24776
GIM_Try, /*On fail goto*//*Label 580*/ 24810, // Rule ID 2805 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2805,
GIR_Done,
// Label 580: @24810
GIM_Try, /*On fail goto*//*Label 581*/ 24844, // Rule ID 2806 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2806,
GIR_Done,
// Label 581: @24844
GIM_Try, /*On fail goto*//*Label 582*/ 24878, // Rule ID 2807 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2807,
GIR_Done,
// Label 582: @24878
GIM_Try, /*On fail goto*//*Label 583*/ 24912, // Rule ID 2808 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2808,
GIR_Done,
// Label 583: @24912
GIM_Try, /*On fail goto*//*Label 584*/ 24951, // Rule ID 2889 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) => (VREV64q32:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2889,
GIR_Done,
// Label 584: @24951
GIM_Try, /*On fail goto*//*Label 585*/ 24990, // Rule ID 2890 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) => (VREV64q32:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2890,
GIR_Done,
// Label 585: @24990
GIM_Try, /*On fail goto*//*Label 586*/ 25029, // Rule ID 2891 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) => (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2891,
GIR_Done,
// Label 586: @25029
GIM_Try, /*On fail goto*//*Label 587*/ 25068, // Rule ID 2892 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v8bf16] }:$src) => (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2892,
GIR_Done,
// Label 587: @25068
GIM_Try, /*On fail goto*//*Label 588*/ 25107, // Rule ID 2893 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) => (VREV64q16:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2893,
GIR_Done,
// Label 588: @25107
GIM_Try, /*On fail goto*//*Label 589*/ 25146, // Rule ID 2894 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) => (VREV64q8:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2894,
GIR_Done,
// Label 589: @25146
GIM_Try, /*On fail goto*//*Label 590*/ 25185, // Rule ID 2895 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) => (VREV64q32:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2895,
GIR_Done,
// Label 590: @25185
GIM_Try, /*On fail goto*//*Label 591*/ 25224, // Rule ID 2896 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) => (VREV64q32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2896,
GIR_Done,
// Label 591: @25224
GIM_Try, /*On fail goto*//*Label 592*/ 25263, // Rule ID 2897 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src) => (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2897,
GIR_Done,
// Label 592: @25263
GIM_Try, /*On fail goto*//*Label 593*/ 25302, // Rule ID 2898 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v8bf16] }:$src) => (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2898,
GIR_Done,
// Label 593: @25302
GIM_Try, /*On fail goto*//*Label 594*/ 25341, // Rule ID 2899 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) => (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2899,
GIR_Done,
// Label 594: @25341
GIM_Try, /*On fail goto*//*Label 595*/ 25380, // Rule ID 2900 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) => (VREV64q8:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2900,
GIR_Done,
// Label 595: @25380
GIM_Try, /*On fail goto*//*Label 596*/ 25414, // Rule ID 5383 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5383,
GIR_Done,
// Label 596: @25414
GIM_Try, /*On fail goto*//*Label 597*/ 25448, // Rule ID 5384 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5384,
GIR_Done,
// Label 597: @25448
GIM_Try, /*On fail goto*//*Label 598*/ 25482, // Rule ID 5389 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5389,
GIR_Done,
// Label 598: @25482
GIM_Try, /*On fail goto*//*Label 599*/ 25516, // Rule ID 5390 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5390,
GIR_Done,
// Label 599: @25516
GIM_Try, /*On fail goto*//*Label 600*/ 25550, // Rule ID 5391 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5391,
GIR_Done,
// Label 600: @25550
GIM_Try, /*On fail goto*//*Label 601*/ 25584, // Rule ID 5392 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5392,
GIR_Done,
// Label 601: @25584
GIM_Try, /*On fail goto*//*Label 602*/ 25618, // Rule ID 5393 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v2f64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5393,
GIR_Done,
// Label 602: @25618
GIM_Try, /*On fail goto*//*Label 603*/ 25652, // Rule ID 5394 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5394,
GIR_Done,
// Label 603: @25652
GIM_Try, /*On fail goto*//*Label 604*/ 25686, // Rule ID 5395 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5395,
GIR_Done,
// Label 604: @25686
GIM_Try, /*On fail goto*//*Label 605*/ 25720, // Rule ID 5396 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5396,
GIR_Done,
// Label 605: @25720
GIM_Try, /*On fail goto*//*Label 606*/ 25754, // Rule ID 5397 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5397,
GIR_Done,
// Label 606: @25754
GIM_Try, /*On fail goto*//*Label 607*/ 25788, // Rule ID 5398 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v2i64] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5398,
GIR_Done,
// Label 607: @25788
GIM_Try, /*On fail goto*//*Label 608*/ 25845, // Rule ID 5425 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV64_32:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5425,
GIR_Done,
// Label 608: @25845
GIM_Try, /*On fail goto*//*Label 609*/ 25902, // Rule ID 5426 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV64_32:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5426,
GIR_Done,
// Label 609: @25902
GIM_Try, /*On fail goto*//*Label 610*/ 25959, // Rule ID 5427 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV64_16:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5427,
GIR_Done,
// Label 610: @25959
GIM_Try, /*On fail goto*//*Label 611*/ 26016, // Rule ID 5428 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV64_16:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5428,
GIR_Done,
// Label 611: @26016
GIM_Try, /*On fail goto*//*Label 612*/ 26073, // Rule ID 5429 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV64_8:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5429,
GIR_Done,
// Label 612: @26073
GIM_Try, /*On fail goto*//*Label 613*/ 26130, // Rule ID 5430 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV64_32:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5430,
GIR_Done,
// Label 613: @26130
GIM_Try, /*On fail goto*//*Label 614*/ 26187, // Rule ID 5431 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV64_32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5431,
GIR_Done,
// Label 614: @26187
GIM_Try, /*On fail goto*//*Label 615*/ 26244, // Rule ID 5432 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV64_16:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5432,
GIR_Done,
// Label 615: @26244
GIM_Try, /*On fail goto*//*Label 616*/ 26301, // Rule ID 5433 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV64_16:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5433,
GIR_Done,
// Label 616: @26301
GIM_Try, /*On fail goto*//*Label 617*/ 26358, // Rule ID 5434 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV64_8:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5434,
GIR_Done,
// Label 617: @26358
GIM_Reject,
// Label 508: @26359
GIM_Try, /*On fail goto*//*Label 618*/ 26393, // Rule ID 2739 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v4i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2739,
GIR_Done,
// Label 618: @26393
GIM_Try, /*On fail goto*//*Label 619*/ 26427, // Rule ID 2740 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v4f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2740,
GIR_Done,
// Label 619: @26427
GIM_Try, /*On fail goto*//*Label 620*/ 26461, // Rule ID 2741 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v4i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2741,
GIR_Done,
// Label 620: @26461
GIM_Try, /*On fail goto*//*Label 621*/ 26495, // Rule ID 2742 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v4bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2742,
GIR_Done,
// Label 621: @26495
GIM_Try, /*On fail goto*//*Label 622*/ 26529, // Rule ID 2775 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v4f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2775,
GIR_Done,
// Label 622: @26529
GIM_Try, /*On fail goto*//*Label 623*/ 26563, // Rule ID 2776 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v4f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2776,
GIR_Done,
// Label 623: @26563
GIM_Try, /*On fail goto*//*Label 624*/ 26597, // Rule ID 2777 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v4f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2777,
GIR_Done,
// Label 624: @26597
GIM_Try, /*On fail goto*//*Label 625*/ 26631, // Rule ID 2778 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v4f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2778,
GIR_Done,
// Label 625: @26631
GIM_Try, /*On fail goto*//*Label 626*/ 26665, // Rule ID 2779 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v4f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2779,
GIR_Done,
// Label 626: @26665
GIM_Try, /*On fail goto*//*Label 627*/ 26699, // Rule ID 2780 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v4bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2780,
GIR_Done,
// Label 627: @26699
GIM_Try, /*On fail goto*//*Label 628*/ 26733, // Rule ID 2781 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v4bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2781,
GIR_Done,
// Label 628: @26733
GIM_Try, /*On fail goto*//*Label 629*/ 26767, // Rule ID 2782 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v4bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2782,
GIR_Done,
// Label 629: @26767
GIM_Try, /*On fail goto*//*Label 630*/ 26801, // Rule ID 2783 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v4bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2783,
GIR_Done,
// Label 630: @26801
GIM_Try, /*On fail goto*//*Label 631*/ 26835, // Rule ID 2784 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v4bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2784,
GIR_Done,
// Label 631: @26835
GIM_Try, /*On fail goto*//*Label 632*/ 26869, // Rule ID 2785 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v4i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2785,
GIR_Done,
// Label 632: @26869
GIM_Try, /*On fail goto*//*Label 633*/ 26903, // Rule ID 2786 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v4i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2786,
GIR_Done,
// Label 633: @26903
GIM_Try, /*On fail goto*//*Label 634*/ 26937, // Rule ID 2787 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v4i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2787,
GIR_Done,
// Label 634: @26937
GIM_Try, /*On fail goto*//*Label 635*/ 26971, // Rule ID 2788 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v4i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2788,
GIR_Done,
// Label 635: @26971
GIM_Try, /*On fail goto*//*Label 636*/ 27005, // Rule ID 2789 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) => DPR:{ *:[v4i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2789,
GIR_Done,
// Label 636: @27005
GIM_Try, /*On fail goto*//*Label 637*/ 27044, // Rule ID 2867 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[f64] }:$src) => (VREV64d16:{ *:[v4f16] } DPR:{ *:[f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2867,
GIR_Done,
// Label 637: @27044
GIM_Try, /*On fail goto*//*Label 638*/ 27083, // Rule ID 2868 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src) => (VREV64d16:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2868,
GIR_Done,
// Label 638: @27083
GIM_Try, /*On fail goto*//*Label 639*/ 27122, // Rule ID 2869 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src) => (VREV32d16:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2869,
GIR_Done,
// Label 639: @27122
GIM_Try, /*On fail goto*//*Label 640*/ 27161, // Rule ID 2870 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src) => (VREV32d16:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2870,
GIR_Done,
// Label 640: @27161
GIM_Try, /*On fail goto*//*Label 641*/ 27200, // Rule ID 2871 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src) => (VREV16d8:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2871,
GIR_Done,
// Label 641: @27200
GIM_Try, /*On fail goto*//*Label 642*/ 27239, // Rule ID 2872 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[f64] }:$src) => (VREV64d16:{ *:[v4bf16] } DPR:{ *:[f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2872,
GIR_Done,
// Label 642: @27239
GIM_Try, /*On fail goto*//*Label 643*/ 27278, // Rule ID 2873 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v1i64] }:$src) => (VREV64d16:{ *:[v4bf16] } DPR:{ *:[v1i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2873,
GIR_Done,
// Label 643: @27278
GIM_Try, /*On fail goto*//*Label 644*/ 27317, // Rule ID 2874 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v2f32] }:$src) => (VREV32d16:{ *:[v4bf16] } DPR:{ *:[v2f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2874,
GIR_Done,
// Label 644: @27317
GIM_Try, /*On fail goto*//*Label 645*/ 27356, // Rule ID 2875 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v2i32] }:$src) => (VREV32d16:{ *:[v4bf16] } DPR:{ *:[v2i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2875,
GIR_Done,
// Label 645: @27356
GIM_Try, /*On fail goto*//*Label 646*/ 27395, // Rule ID 2876 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4bf16] } DPR:{ *:[v8i8] }:$src) => (VREV16d8:{ *:[v4bf16] } DPR:{ *:[v8i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2876,
GIR_Done,
// Label 646: @27395
GIM_Try, /*On fail goto*//*Label 647*/ 27434, // Rule ID 2877 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) => (VREV64d16:{ *:[v4i16] } DPR:{ *:[f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2877,
GIR_Done,
// Label 647: @27434
GIM_Try, /*On fail goto*//*Label 648*/ 27473, // Rule ID 2878 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) => (VREV64d16:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2878,
GIR_Done,
// Label 648: @27473
GIM_Try, /*On fail goto*//*Label 649*/ 27512, // Rule ID 2879 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) => (VREV32d16:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2879,
GIR_Done,
// Label 649: @27512
GIM_Try, /*On fail goto*//*Label 650*/ 27551, // Rule ID 2880 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) => (VREV32d16:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2880,
GIR_Done,
// Label 650: @27551
GIM_Try, /*On fail goto*//*Label 651*/ 27590, // Rule ID 2881 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) => (VREV16d8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2881,
GIR_Done,
// Label 651: @27590
GIM_Reject,
// Label 509: @27591
GIM_Try, /*On fail goto*//*Label 652*/ 27625, // Rule ID 2745 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2745,
GIR_Done,
// Label 652: @27625
GIM_Try, /*On fail goto*//*Label 653*/ 27659, // Rule ID 2746 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2746,
GIR_Done,
// Label 653: @27659
GIM_Try, /*On fail goto*//*Label 654*/ 27693, // Rule ID 2809 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2809,
GIR_Done,
// Label 654: @27693
GIM_Try, /*On fail goto*//*Label 655*/ 27727, // Rule ID 2810 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2810,
GIR_Done,
// Label 655: @27727
GIM_Try, /*On fail goto*//*Label 656*/ 27761, // Rule ID 2811 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2811,
GIR_Done,
// Label 656: @27761
GIM_Try, /*On fail goto*//*Label 657*/ 27795, // Rule ID 2812 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2812,
GIR_Done,
// Label 657: @27795
GIM_Try, /*On fail goto*//*Label 658*/ 27829, // Rule ID 2813 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2813,
GIR_Done,
// Label 658: @27829
GIM_Try, /*On fail goto*//*Label 659*/ 27863, // Rule ID 2814 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2814,
GIR_Done,
// Label 659: @27863
GIM_Try, /*On fail goto*//*Label 660*/ 27897, // Rule ID 2815 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2815,
GIR_Done,
// Label 660: @27897
GIM_Try, /*On fail goto*//*Label 661*/ 27931, // Rule ID 2816 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2816,
GIR_Done,
// Label 661: @27931
GIM_Try, /*On fail goto*//*Label 662*/ 27965, // Rule ID 2817 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2817,
GIR_Done,
// Label 662: @27965
GIM_Try, /*On fail goto*//*Label 663*/ 27999, // Rule ID 2818 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2818,
GIR_Done,
// Label 663: @27999
GIM_Try, /*On fail goto*//*Label 664*/ 28033, // Rule ID 2819 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2819,
GIR_Done,
// Label 664: @28033
GIM_Try, /*On fail goto*//*Label 665*/ 28067, // Rule ID 2820 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2820,
GIR_Done,
// Label 665: @28067
GIM_Try, /*On fail goto*//*Label 666*/ 28106, // Rule ID 2901 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) => (VREV64q32:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2901,
GIR_Done,
// Label 666: @28106
GIM_Try, /*On fail goto*//*Label 667*/ 28145, // Rule ID 2902 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) => (VREV64q32:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2902,
GIR_Done,
// Label 667: @28145
GIM_Try, /*On fail goto*//*Label 668*/ 28184, // Rule ID 2903 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src) => (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2903,
GIR_Done,
// Label 668: @28184
GIM_Try, /*On fail goto*//*Label 669*/ 28223, // Rule ID 2904 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v8bf16] }:$src) => (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2904,
GIR_Done,
// Label 669: @28223
GIM_Try, /*On fail goto*//*Label 670*/ 28262, // Rule ID 2905 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) => (VREV32q16:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2905,
GIR_Done,
// Label 670: @28262
GIM_Try, /*On fail goto*//*Label 671*/ 28301, // Rule ID 2906 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) => (VREV32q8:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2906,
GIR_Done,
// Label 671: @28301
GIM_Try, /*On fail goto*//*Label 672*/ 28340, // Rule ID 2907 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) => (VREV64q32:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2907,
GIR_Done,
// Label 672: @28340
GIM_Try, /*On fail goto*//*Label 673*/ 28379, // Rule ID 2908 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) => (VREV64q32:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2908,
GIR_Done,
// Label 673: @28379
GIM_Try, /*On fail goto*//*Label 674*/ 28418, // Rule ID 2909 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src) => (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2909,
GIR_Done,
// Label 674: @28418
GIM_Try, /*On fail goto*//*Label 675*/ 28457, // Rule ID 2910 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v8bf16] }:$src) => (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2910,
GIR_Done,
// Label 675: @28457
GIM_Try, /*On fail goto*//*Label 676*/ 28496, // Rule ID 2911 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) => (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2911,
GIR_Done,
// Label 676: @28496
GIM_Try, /*On fail goto*//*Label 677*/ 28535, // Rule ID 2912 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) => (VREV32q8:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2912,
GIR_Done,
// Label 677: @28535
GIM_Try, /*On fail goto*//*Label 678*/ 28569, // Rule ID 5385 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5385,
GIR_Done,
// Label 678: @28569
GIM_Try, /*On fail goto*//*Label 679*/ 28603, // Rule ID 5386 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5386,
GIR_Done,
// Label 679: @28603
GIM_Try, /*On fail goto*//*Label 680*/ 28637, // Rule ID 5399 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5399,
GIR_Done,
// Label 680: @28637
GIM_Try, /*On fail goto*//*Label 681*/ 28671, // Rule ID 5400 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5400,
GIR_Done,
// Label 681: @28671
GIM_Try, /*On fail goto*//*Label 682*/ 28705, // Rule ID 5401 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5401,
GIR_Done,
// Label 682: @28705
GIM_Try, /*On fail goto*//*Label 683*/ 28739, // Rule ID 5402 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5402,
GIR_Done,
// Label 683: @28739
GIM_Try, /*On fail goto*//*Label 684*/ 28773, // Rule ID 5403 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v4f32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5403,
GIR_Done,
// Label 684: @28773
GIM_Try, /*On fail goto*//*Label 685*/ 28807, // Rule ID 5404 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5404,
GIR_Done,
// Label 685: @28807
GIM_Try, /*On fail goto*//*Label 686*/ 28841, // Rule ID 5405 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5405,
GIR_Done,
// Label 686: @28841
GIM_Try, /*On fail goto*//*Label 687*/ 28875, // Rule ID 5406 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5406,
GIR_Done,
// Label 687: @28875
GIM_Try, /*On fail goto*//*Label 688*/ 28909, // Rule ID 5407 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5407,
GIR_Done,
// Label 688: @28909
GIM_Try, /*On fail goto*//*Label 689*/ 28943, // Rule ID 5408 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v4i32] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5408,
GIR_Done,
// Label 689: @28943
GIM_Try, /*On fail goto*//*Label 690*/ 29000, // Rule ID 5435 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_32:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5435,
GIR_Done,
// Label 690: @29000
GIM_Try, /*On fail goto*//*Label 691*/ 29057, // Rule ID 5436 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_32:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5436,
GIR_Done,
// Label 691: @29057
GIM_Try, /*On fail goto*//*Label 692*/ 29114, // Rule ID 5437 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV32_16:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5437,
GIR_Done,
// Label 692: @29114
GIM_Try, /*On fail goto*//*Label 693*/ 29171, // Rule ID 5438 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV32_16:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5438,
GIR_Done,
// Label 693: @29171
GIM_Try, /*On fail goto*//*Label 694*/ 29228, // Rule ID 5439 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV32_8:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5439,
GIR_Done,
// Label 694: @29228
GIM_Try, /*On fail goto*//*Label 695*/ 29285, // Rule ID 5440 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_32:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5440,
GIR_Done,
// Label 695: @29285
GIM_Try, /*On fail goto*//*Label 696*/ 29342, // Rule ID 5441 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_32:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5441,
GIR_Done,
// Label 696: @29342
GIM_Try, /*On fail goto*//*Label 697*/ 29399, // Rule ID 5442 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV32_16:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5442,
GIR_Done,
// Label 697: @29399
GIM_Try, /*On fail goto*//*Label 698*/ 29456, // Rule ID 5443 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV32_16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5443,
GIR_Done,
// Label 698: @29456
GIM_Try, /*On fail goto*//*Label 699*/ 29513, // Rule ID 5444 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV32_8:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5444,
GIR_Done,
// Label 699: @29513
GIM_Reject,
// Label 510: @29514
GIM_Try, /*On fail goto*//*Label 700*/ 29548, // Rule ID 2790 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) => DPR:{ *:[v8i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2790,
GIR_Done,
// Label 700: @29548
GIM_Try, /*On fail goto*//*Label 701*/ 29582, // Rule ID 2791 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) => DPR:{ *:[v8i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2791,
GIR_Done,
// Label 701: @29582
GIM_Try, /*On fail goto*//*Label 702*/ 29616, // Rule ID 2792 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) => DPR:{ *:[v8i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2792,
GIR_Done,
// Label 702: @29616
GIM_Try, /*On fail goto*//*Label 703*/ 29650, // Rule ID 2793 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) => DPR:{ *:[v8i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2793,
GIR_Done,
// Label 703: @29650
GIM_Try, /*On fail goto*//*Label 704*/ 29684, // Rule ID 2794 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src) => DPR:{ *:[v8i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2794,
GIR_Done,
// Label 704: @29684
GIM_Try, /*On fail goto*//*Label 705*/ 29718, // Rule ID 2795 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v4bf16] }:$src) => DPR:{ *:[v8i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2795,
GIR_Done,
// Label 705: @29718
GIM_Try, /*On fail goto*//*Label 706*/ 29752, // Rule ID 2796 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) => DPR:{ *:[v8i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::DPRRegClassID,
// GIR_Coverage, 2796,
GIR_Done,
// Label 706: @29752
GIM_Try, /*On fail goto*//*Label 707*/ 29791, // Rule ID 2882 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) => (VREV64d8:{ *:[v8i8] } DPR:{ *:[f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2882,
GIR_Done,
// Label 707: @29791
GIM_Try, /*On fail goto*//*Label 708*/ 29830, // Rule ID 2883 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) => (VREV64d8:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2883,
GIR_Done,
// Label 708: @29830
GIM_Try, /*On fail goto*//*Label 709*/ 29869, // Rule ID 2884 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) => (VREV32d8:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2884,
GIR_Done,
// Label 709: @29869
GIM_Try, /*On fail goto*//*Label 710*/ 29908, // Rule ID 2885 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) => (VREV32d8:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2885,
GIR_Done,
// Label 710: @29908
GIM_Try, /*On fail goto*//*Label 711*/ 29947, // Rule ID 2886 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src) => (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2886,
GIR_Done,
// Label 711: @29947
GIM_Try, /*On fail goto*//*Label 712*/ 29986, // Rule ID 2887 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v4bf16] }:$src) => (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2887,
GIR_Done,
// Label 712: @29986
GIM_Try, /*On fail goto*//*Label 713*/ 30025, // Rule ID 2888 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) => (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16d8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2888,
GIR_Done,
// Label 713: @30025
GIM_Reject,
// Label 511: @30026
GIM_Try, /*On fail goto*//*Label 714*/ 30060, // Rule ID 2747 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2747,
GIR_Done,
// Label 714: @30060
GIM_Try, /*On fail goto*//*Label 715*/ 30094, // Rule ID 2748 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2748,
GIR_Done,
// Label 715: @30094
GIM_Try, /*On fail goto*//*Label 716*/ 30128, // Rule ID 2749 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2749,
GIR_Done,
// Label 716: @30128
GIM_Try, /*On fail goto*//*Label 717*/ 30162, // Rule ID 2750 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v8bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2750,
GIR_Done,
// Label 717: @30162
GIM_Try, /*On fail goto*//*Label 718*/ 30196, // Rule ID 2821 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2821,
GIR_Done,
// Label 718: @30196
GIM_Try, /*On fail goto*//*Label 719*/ 30230, // Rule ID 2822 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2822,
GIR_Done,
// Label 719: @30230
GIM_Try, /*On fail goto*//*Label 720*/ 30264, // Rule ID 2823 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2823,
GIR_Done,
// Label 720: @30264
GIM_Try, /*On fail goto*//*Label 721*/ 30298, // Rule ID 2824 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2824,
GIR_Done,
// Label 721: @30298
GIM_Try, /*On fail goto*//*Label 722*/ 30332, // Rule ID 2825 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2825,
GIR_Done,
// Label 722: @30332
GIM_Try, /*On fail goto*//*Label 723*/ 30366, // Rule ID 2826 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v8bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2826,
GIR_Done,
// Label 723: @30366
GIM_Try, /*On fail goto*//*Label 724*/ 30400, // Rule ID 2827 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v8bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2827,
GIR_Done,
// Label 724: @30400
GIM_Try, /*On fail goto*//*Label 725*/ 30434, // Rule ID 2828 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v8bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2828,
GIR_Done,
// Label 725: @30434
GIM_Try, /*On fail goto*//*Label 726*/ 30468, // Rule ID 2829 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v8bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2829,
GIR_Done,
// Label 726: @30468
GIM_Try, /*On fail goto*//*Label 727*/ 30502, // Rule ID 2830 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v8bf16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2830,
GIR_Done,
// Label 727: @30502
GIM_Try, /*On fail goto*//*Label 728*/ 30536, // Rule ID 2831 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2831,
GIR_Done,
// Label 728: @30536
GIM_Try, /*On fail goto*//*Label 729*/ 30570, // Rule ID 2832 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2832,
GIR_Done,
// Label 729: @30570
GIM_Try, /*On fail goto*//*Label 730*/ 30604, // Rule ID 2833 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2833,
GIR_Done,
// Label 730: @30604
GIM_Try, /*On fail goto*//*Label 731*/ 30638, // Rule ID 2834 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2834,
GIR_Done,
// Label 731: @30638
GIM_Try, /*On fail goto*//*Label 732*/ 30672, // Rule ID 2835 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) => QPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2835,
GIR_Done,
// Label 732: @30672
GIM_Try, /*On fail goto*//*Label 733*/ 30711, // Rule ID 2913 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) => (VREV64q16:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2913,
GIR_Done,
// Label 733: @30711
GIM_Try, /*On fail goto*//*Label 734*/ 30750, // Rule ID 2914 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src) => (VREV64q16:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2914,
GIR_Done,
// Label 734: @30750
GIM_Try, /*On fail goto*//*Label 735*/ 30789, // Rule ID 2915 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src) => (VREV32q16:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2915,
GIR_Done,
// Label 735: @30789
GIM_Try, /*On fail goto*//*Label 736*/ 30828, // Rule ID 2916 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src) => (VREV32q16:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2916,
GIR_Done,
// Label 736: @30828
GIM_Try, /*On fail goto*//*Label 737*/ 30867, // Rule ID 2917 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src) => (VREV16q8:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2917,
GIR_Done,
// Label 737: @30867
GIM_Try, /*On fail goto*//*Label 738*/ 30906, // Rule ID 2918 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v2f64] }:$src) => (VREV64q16:{ *:[v8bf16] } QPR:{ *:[v2f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2918,
GIR_Done,
// Label 738: @30906
GIM_Try, /*On fail goto*//*Label 739*/ 30945, // Rule ID 2919 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v2i64] }:$src) => (VREV64q16:{ *:[v8bf16] } QPR:{ *:[v2i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2919,
GIR_Done,
// Label 739: @30945
GIM_Try, /*On fail goto*//*Label 740*/ 30984, // Rule ID 2920 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v4f32] }:$src) => (VREV32q16:{ *:[v8bf16] } QPR:{ *:[v4f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2920,
GIR_Done,
// Label 740: @30984
GIM_Try, /*On fail goto*//*Label 741*/ 31023, // Rule ID 2921 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v4i32] }:$src) => (VREV32q16:{ *:[v8bf16] } QPR:{ *:[v4i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2921,
GIR_Done,
// Label 741: @31023
GIM_Try, /*On fail goto*//*Label 742*/ 31062, // Rule ID 2922 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8bf16] } QPR:{ *:[v16i8] }:$src) => (VREV16q8:{ *:[v8bf16] } QPR:{ *:[v16i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2922,
GIR_Done,
// Label 742: @31062
GIM_Try, /*On fail goto*//*Label 743*/ 31101, // Rule ID 2923 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) => (VREV64q16:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2923,
GIR_Done,
// Label 743: @31101
GIM_Try, /*On fail goto*//*Label 744*/ 31140, // Rule ID 2924 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) => (VREV64q16:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2924,
GIR_Done,
// Label 744: @31140
GIM_Try, /*On fail goto*//*Label 745*/ 31179, // Rule ID 2925 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) => (VREV32q16:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2925,
GIR_Done,
// Label 745: @31179
GIM_Try, /*On fail goto*//*Label 746*/ 31218, // Rule ID 2926 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) => (VREV32q16:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2926,
GIR_Done,
// Label 746: @31218
GIM_Try, /*On fail goto*//*Label 747*/ 31257, // Rule ID 2927 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) => (VREV16q8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2927,
GIR_Done,
// Label 747: @31257
GIM_Try, /*On fail goto*//*Label 748*/ 31291, // Rule ID 5387 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5387,
GIR_Done,
// Label 748: @31291
GIM_Try, /*On fail goto*//*Label 749*/ 31325, // Rule ID 5388 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5388,
GIR_Done,
// Label 749: @31325
GIM_Try, /*On fail goto*//*Label 750*/ 31359, // Rule ID 5409 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5409,
GIR_Done,
// Label 750: @31359
GIM_Try, /*On fail goto*//*Label 751*/ 31393, // Rule ID 5410 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5410,
GIR_Done,
// Label 751: @31393
GIM_Try, /*On fail goto*//*Label 752*/ 31427, // Rule ID 5411 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5411,
GIR_Done,
// Label 752: @31427
GIM_Try, /*On fail goto*//*Label 753*/ 31461, // Rule ID 5412 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5412,
GIR_Done,
// Label 753: @31461
GIM_Try, /*On fail goto*//*Label 754*/ 31495, // Rule ID 5413 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v8f16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5413,
GIR_Done,
// Label 754: @31495
GIM_Try, /*On fail goto*//*Label 755*/ 31529, // Rule ID 5414 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5414,
GIR_Done,
// Label 755: @31529
GIM_Try, /*On fail goto*//*Label 756*/ 31563, // Rule ID 5415 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5415,
GIR_Done,
// Label 756: @31563
GIM_Try, /*On fail goto*//*Label 757*/ 31597, // Rule ID 5416 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5416,
GIR_Done,
// Label 757: @31597
GIM_Try, /*On fail goto*//*Label 758*/ 31631, // Rule ID 5417 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5417,
GIR_Done,
// Label 758: @31631
GIM_Try, /*On fail goto*//*Label 759*/ 31665, // Rule ID 5418 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src) => MQPR:{ *:[v8i16] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5418,
GIR_Done,
// Label 759: @31665
GIM_Try, /*On fail goto*//*Label 760*/ 31722, // Rule ID 5445 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_16:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5445,
GIR_Done,
// Label 760: @31722
GIM_Try, /*On fail goto*//*Label 761*/ 31779, // Rule ID 5446 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_16:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5446,
GIR_Done,
// Label 761: @31779
GIM_Try, /*On fail goto*//*Label 762*/ 31836, // Rule ID 5447 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV32_16:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5447,
GIR_Done,
// Label 762: @31836
GIM_Try, /*On fail goto*//*Label 763*/ 31893, // Rule ID 5448 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV32_16:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5448,
GIR_Done,
// Label 763: @31893
GIM_Try, /*On fail goto*//*Label 764*/ 31950, // Rule ID 5449 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV16_8:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV16_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5449,
GIR_Done,
// Label 764: @31950
GIM_Try, /*On fail goto*//*Label 765*/ 32007, // Rule ID 5450 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_16:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5450,
GIR_Done,
// Label 765: @32007
GIM_Try, /*On fail goto*//*Label 766*/ 32064, // Rule ID 5451 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_16:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5451,
GIR_Done,
// Label 766: @32064
GIM_Try, /*On fail goto*//*Label 767*/ 32121, // Rule ID 5452 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV32_16:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5452,
GIR_Done,
// Label 767: @32121
GIM_Try, /*On fail goto*//*Label 768*/ 32178, // Rule ID 5453 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV32_16:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5453,
GIR_Done,
// Label 768: @32178
GIM_Try, /*On fail goto*//*Label 769*/ 32235, // Rule ID 5454 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src) => (MVE_VREV16_8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV16_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5454,
GIR_Done,
// Label 769: @32235
GIM_Reject,
// Label 512: @32236
GIM_Try, /*On fail goto*//*Label 770*/ 32270, // Rule ID 2836 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) => QPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2836,
GIR_Done,
// Label 770: @32270
GIM_Try, /*On fail goto*//*Label 771*/ 32304, // Rule ID 2837 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) => QPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2837,
GIR_Done,
// Label 771: @32304
GIM_Try, /*On fail goto*//*Label 772*/ 32338, // Rule ID 2838 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) => QPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2838,
GIR_Done,
// Label 772: @32338
GIM_Try, /*On fail goto*//*Label 773*/ 32372, // Rule ID 2839 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) => QPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2839,
GIR_Done,
// Label 773: @32372
GIM_Try, /*On fail goto*//*Label 774*/ 32406, // Rule ID 2840 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src) => QPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2840,
GIR_Done,
// Label 774: @32406
GIM_Try, /*On fail goto*//*Label 775*/ 32440, // Rule ID 2841 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v8bf16] }:$src) => QPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2841,
GIR_Done,
// Label 775: @32440
GIM_Try, /*On fail goto*//*Label 776*/ 32474, // Rule ID 2842 //
GIM_CheckFeatures, GIFBS_HasNEON_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) => QPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::QPRRegClassID,
// GIR_Coverage, 2842,
GIR_Done,
// Label 776: @32474
GIM_Try, /*On fail goto*//*Label 777*/ 32513, // Rule ID 2928 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) => (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2928,
GIR_Done,
// Label 777: @32513
GIM_Try, /*On fail goto*//*Label 778*/ 32552, // Rule ID 2929 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) => (VREV64q8:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV64q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2929,
GIR_Done,
// Label 778: @32552
GIM_Try, /*On fail goto*//*Label 779*/ 32591, // Rule ID 2930 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) => (VREV32q8:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2930,
GIR_Done,
// Label 779: @32591
GIM_Try, /*On fail goto*//*Label 780*/ 32630, // Rule ID 2931 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) => (VREV32q8:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV32q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2931,
GIR_Done,
// Label 780: @32630
GIM_Try, /*On fail goto*//*Label 781*/ 32669, // Rule ID 2932 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src) => (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2932,
GIR_Done,
// Label 781: @32669
GIM_Try, /*On fail goto*//*Label 782*/ 32708, // Rule ID 2933 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v8bf16] }:$src) => (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8bf16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2933,
GIR_Done,
// Label 782: @32708
GIM_Try, /*On fail goto*//*Label 783*/ 32747, // Rule ID 2934 //
GIM_CheckFeatures, GIFBS_HasNEON_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) => (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VREV16q8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2934,
GIR_Done,
// Label 783: @32747
GIM_Try, /*On fail goto*//*Label 784*/ 32781, // Rule ID 5419 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src) => MQPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5419,
GIR_Done,
// Label 784: @32781
GIM_Try, /*On fail goto*//*Label 785*/ 32815, // Rule ID 5420 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src) => MQPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5420,
GIR_Done,
// Label 785: @32815
GIM_Try, /*On fail goto*//*Label 786*/ 32849, // Rule ID 5421 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src) => MQPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5421,
GIR_Done,
// Label 786: @32849
GIM_Try, /*On fail goto*//*Label 787*/ 32883, // Rule ID 5422 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src) => MQPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5422,
GIR_Done,
// Label 787: @32883
GIM_Try, /*On fail goto*//*Label 788*/ 32917, // Rule ID 5423 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src) => MQPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5423,
GIR_Done,
// Label 788: @32917
GIM_Try, /*On fail goto*//*Label 789*/ 32951, // Rule ID 5424 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsLE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src) => MQPR:{ *:[v16i8] }:$src
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::MQPRRegClassID,
// GIR_Coverage, 5424,
GIR_Done,
// Label 789: @32951
GIM_Try, /*On fail goto*//*Label 790*/ 33008, // Rule ID 5455 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src) => (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5455,
GIR_Done,
// Label 790: @33008
GIM_Try, /*On fail goto*//*Label 791*/ 33065, // Rule ID 5456 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src) => (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV64_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5456,
GIR_Done,
// Label 791: @33065
GIM_Try, /*On fail goto*//*Label 792*/ 33122, // Rule ID 5457 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src) => (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5457,
GIR_Done,
// Label 792: @33122
GIM_Try, /*On fail goto*//*Label 793*/ 33179, // Rule ID 5458 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5458,
GIR_Done,
// Label 793: @33179
GIM_Try, /*On fail goto*//*Label 794*/ 33236, // Rule ID 5459 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src) => (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV16_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5459,
GIR_Done,
// Label 794: @33236
GIM_Try, /*On fail goto*//*Label 795*/ 33293, // Rule ID 5460 //
GIM_CheckFeatures, GIFBS_HasMVEInt_IsBE,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV16_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5460,
GIR_Done,
// Label 795: @33293
GIM_Reject,
// Label 513: @33294
GIM_Reject,
// Label 10: @33295
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 801*/ 33550,
/*GILLT_s16*//*Label 796*/ 33314,
/*GILLT_s32*//*Label 797*/ 33354,
/*GILLT_s64*//*Label 798*/ 33394, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 799*/ 33434, 0, 0, 0,
/*GILLT_v8s16*//*Label 800*/ 33492,
// Label 796: @33314
GIM_Try, /*On fail goto*//*Label 802*/ 33353, // Rule ID 681 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (ftrunc:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTZH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 681,
GIR_Done,
// Label 802: @33353
GIM_Reject,
// Label 797: @33354
GIM_Try, /*On fail goto*//*Label 803*/ 33393, // Rule ID 682 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (ftrunc:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTZS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 682,
GIR_Done,
// Label 803: @33393
GIM_Reject,
// Label 798: @33394
GIM_Try, /*On fail goto*//*Label 804*/ 33433, // Rule ID 683 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (ftrunc:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTZD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 683,
GIR_Done,
// Label 804: @33433
GIM_Reject,
// Label 799: @33434
GIM_Try, /*On fail goto*//*Label 805*/ 33491, // Rule ID 4082 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (ftrunc:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32Z:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf32Z,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4082,
GIR_Done,
// Label 805: @33491
GIM_Reject,
// Label 800: @33492
GIM_Try, /*On fail goto*//*Label 806*/ 33549, // Rule ID 4070 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (ftrunc:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16Z:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf16Z,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4070,
GIR_Done,
// Label 806: @33549
GIM_Reject,
// Label 801: @33550
GIM_Reject,
// Label 11: @33551
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 812*/ 33758,
/*GILLT_s16*//*Label 807*/ 33570,
/*GILLT_s32*//*Label 808*/ 33594,
/*GILLT_s64*//*Label 809*/ 33618, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 810*/ 33642, 0, 0, 0,
/*GILLT_v8s16*//*Label 811*/ 33700,
// Label 807: @33570
GIM_Try, /*On fail goto*//*Label 813*/ 33593, // Rule ID 690 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fround:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTAH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTAH,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 690,
GIR_Done,
// Label 813: @33593
GIM_Reject,
// Label 808: @33594
GIM_Try, /*On fail goto*//*Label 814*/ 33617, // Rule ID 691 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fround:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTAS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTAS,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 691,
GIR_Done,
// Label 814: @33617
GIM_Reject,
// Label 809: @33618
GIM_Try, /*On fail goto*//*Label 815*/ 33641, // Rule ID 692 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fround:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTAD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTAD,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 692,
GIR_Done,
// Label 815: @33641
GIM_Reject,
// Label 810: @33642
GIM_Try, /*On fail goto*//*Label 816*/ 33699, // Rule ID 4080 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fround:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32A:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf32A,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4080,
GIR_Done,
// Label 816: @33699
GIM_Reject,
// Label 811: @33700
GIM_Try, /*On fail goto*//*Label 817*/ 33757, // Rule ID 4068 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fround:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16A:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf16A,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4068,
GIR_Done,
// Label 817: @33757
GIM_Reject,
// Label 812: @33758
GIM_Reject,
// Label 12: @33759
GIM_Try, /*On fail goto*//*Label 818*/ 33904,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 819*/ 33834, // Rule ID 2065 //
GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
// MIs[0] Rn
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
// (ld:{ *:[i32] } tGPR:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> => (tLDRSB:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (tMOVi8:{ *:[i32] } 0:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::tMOVi8,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tLDRSB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2065,
GIR_Done,
// Label 819: @33834
GIM_Try, /*On fail goto*//*Label 820*/ 33903, // Rule ID 2066 //
GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
// MIs[0] Rn
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
// (ld:{ *:[i32] } tGPR:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> => (tLDRSH:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (tMOVi8:{ *:[i32] } 0:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::tMOVi8,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tLDRSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2066,
GIR_Done,
// Label 820: @33903
GIM_Reject,
// Label 818: @33904
GIM_Reject,
// Label 13: @33905
GIM_Try, /*On fail goto*//*Label 821*/ 33926, // Rule ID 5521 //
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
// MIs[0] Operand 0
GIM_CheckIsImm, /*MI*/0, /*Op*/0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/1, 0,
// (atomic_fence (timm:{ *:[i32] }), 0:{ *:[i32] }) => (MEMBARRIER)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::MEMBARRIER,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5521,
GIR_Done,
// Label 821: @33926
GIM_Reject,
// Label 14: @33927
GIM_Try, /*On fail goto*//*Label 822*/ 40090,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
GIM_Try, /*On fail goto*//*Label 823*/ 33982, // Rule ID 1879 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uxtb16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2777:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) => (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1879,
GIR_Done,
// Label 823: @33982
GIM_Try, /*On fail goto*//*Label 824*/ 34032, // Rule ID 2118 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uxtb16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2777:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm) => (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2118,
GIR_Done,
// Label 824: @34032
GIM_Try, /*On fail goto*//*Label 825*/ 34072, // Rule ID 693 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (intrinsic_wo_chain:{ *:[f16] } 2663:{ *:[iPTR] }, HPR:{ *:[f16] }:$Sm) => (VRINTNH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 693,
GIR_Done,
// Label 825: @34072
GIM_Try, /*On fail goto*//*Label 826*/ 34112, // Rule ID 694 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2663:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VRINTNS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 694,
GIR_Done,
// Label 826: @34112
GIM_Try, /*On fail goto*//*Label 827*/ 34152, // Rule ID 695 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[f64] } 2663:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VRINTND:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTND,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 695,
GIR_Done,
// Label 827: @34152
GIM_Try, /*On fail goto*//*Label 828*/ 34199, // Rule ID 709 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_vcvtr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2778:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VTOSIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTOSIRD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 709,
GIR_Done,
// Label 828: @34199
GIM_Try, /*On fail goto*//*Label 829*/ 34246, // Rule ID 710 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_vcvtr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2778:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VTOSIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTOSIRS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 710,
GIR_Done,
// Label 829: @34246
GIM_Try, /*On fail goto*//*Label 830*/ 34293, // Rule ID 711 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_vcvtru,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2779:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) => (VTOUIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTOUIRD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 711,
GIR_Done,
// Label 830: @34293
GIM_Try, /*On fail goto*//*Label 831*/ 34340, // Rule ID 712 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_vcvtru,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2779:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) => (VTOUIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTOUIRS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 712,
GIR_Done,
// Label 831: @34340
GIM_Try, /*On fail goto*//*Label 832*/ 34387, // Rule ID 1260 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2629:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VPADDLsv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1260,
GIR_Done,
// Label 832: @34387
GIM_Try, /*On fail goto*//*Label 833*/ 34434, // Rule ID 1261 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2629:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VPADDLsv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1261,
GIR_Done,
// Label 833: @34434
GIM_Try, /*On fail goto*//*Label 834*/ 34481, // Rule ID 1262 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2629:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VPADDLsv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1262,
GIR_Done,
// Label 834: @34481
GIM_Try, /*On fail goto*//*Label 835*/ 34528, // Rule ID 1263 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2629:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VPADDLsv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1263,
GIR_Done,
// Label 835: @34528
GIM_Try, /*On fail goto*//*Label 836*/ 34575, // Rule ID 1264 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2629:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VPADDLsv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1264,
GIR_Done,
// Label 836: @34575
GIM_Try, /*On fail goto*//*Label 837*/ 34622, // Rule ID 1265 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2629:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VPADDLsv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1265,
GIR_Done,
// Label 837: @34622
GIM_Try, /*On fail goto*//*Label 838*/ 34669, // Rule ID 1266 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2630:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VPADDLuv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1266,
GIR_Done,
// Label 838: @34669
GIM_Try, /*On fail goto*//*Label 839*/ 34716, // Rule ID 1267 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2630:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VPADDLuv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1267,
GIR_Done,
// Label 839: @34716
GIM_Try, /*On fail goto*//*Label 840*/ 34763, // Rule ID 1268 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2630:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VPADDLuv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1268,
GIR_Done,
// Label 840: @34763
GIM_Try, /*On fail goto*//*Label 841*/ 34810, // Rule ID 1269 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2630:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VPADDLuv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1269,
GIR_Done,
// Label 841: @34810
GIM_Try, /*On fail goto*//*Label 842*/ 34857, // Rule ID 1270 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2630:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VPADDLuv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1270,
GIR_Done,
// Label 842: @34857
GIM_Try, /*On fail goto*//*Label 843*/ 34904, // Rule ID 1271 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpaddlu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2630:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VPADDLuv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1271,
GIR_Done,
// Label 843: @34904
GIM_Try, /*On fail goto*//*Label 844*/ 34951, // Rule ID 1300 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2657:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VRECPEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1300,
GIR_Done,
// Label 844: @34951
GIM_Try, /*On fail goto*//*Label 845*/ 34998, // Rule ID 1301 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2657:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VRECPEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1301,
GIR_Done,
// Label 845: @34998
GIM_Try, /*On fail goto*//*Label 846*/ 35045, // Rule ID 1302 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2657:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRECPEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1302,
GIR_Done,
// Label 846: @35045
GIM_Try, /*On fail goto*//*Label 847*/ 35092, // Rule ID 1303 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2657:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRECPEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1303,
GIR_Done,
// Label 847: @35092
GIM_Try, /*On fail goto*//*Label 848*/ 35139, // Rule ID 1304 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2657:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRECPEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1304,
GIR_Done,
// Label 848: @35139
GIM_Try, /*On fail goto*//*Label 849*/ 35186, // Rule ID 1305 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecpe,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2657:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRECPEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPEhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1305,
GIR_Done,
// Label 849: @35186
GIM_Try, /*On fail goto*//*Label 850*/ 35233, // Rule ID 1310 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2670:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VRSQRTEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1310,
GIR_Done,
// Label 850: @35233
GIM_Try, /*On fail goto*//*Label 851*/ 35280, // Rule ID 1311 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2670:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VRSQRTEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1311,
GIR_Done,
// Label 851: @35280
GIM_Try, /*On fail goto*//*Label 852*/ 35327, // Rule ID 1312 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2670:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRSQRTEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1312,
GIR_Done,
// Label 852: @35327
GIM_Try, /*On fail goto*//*Label 853*/ 35374, // Rule ID 1313 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2670:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRSQRTEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1313,
GIR_Done,
// Label 853: @35374
GIM_Try, /*On fail goto*//*Label 854*/ 35421, // Rule ID 1314 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2670:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRSQRTEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1314,
GIR_Done,
// Label 854: @35421
GIM_Try, /*On fail goto*//*Label 855*/ 35468, // Rule ID 1315 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrte,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2670:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRSQRTEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTEhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1315,
GIR_Done,
// Label 855: @35468
GIM_Try, /*On fail goto*//*Label 856*/ 35515, // Rule ID 1536 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2635:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VQABSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1536,
GIR_Done,
// Label 856: @35515
GIM_Try, /*On fail goto*//*Label 857*/ 35562, // Rule ID 1537 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2635:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VQABSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1537,
GIR_Done,
// Label 857: @35562
GIM_Try, /*On fail goto*//*Label 858*/ 35609, // Rule ID 1538 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2635:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VQABSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1538,
GIR_Done,
// Label 858: @35609
GIM_Try, /*On fail goto*//*Label 859*/ 35656, // Rule ID 1539 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2635:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VQABSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1539,
GIR_Done,
// Label 859: @35656
GIM_Try, /*On fail goto*//*Label 860*/ 35703, // Rule ID 1540 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2635:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQABSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1540,
GIR_Done,
// Label 860: @35703
GIM_Try, /*On fail goto*//*Label 861*/ 35750, // Rule ID 1541 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqabs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2635:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQABSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQABSv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1541,
GIR_Done,
// Label 861: @35750
GIM_Try, /*On fail goto*//*Label 862*/ 35797, // Rule ID 1552 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2641:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VQNEGv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1552,
GIR_Done,
// Label 862: @35797
GIM_Try, /*On fail goto*//*Label 863*/ 35844, // Rule ID 1553 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2641:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VQNEGv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1553,
GIR_Done,
// Label 863: @35844
GIM_Try, /*On fail goto*//*Label 864*/ 35891, // Rule ID 1554 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2641:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VQNEGv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1554,
GIR_Done,
// Label 864: @35891
GIM_Try, /*On fail goto*//*Label 865*/ 35938, // Rule ID 1555 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2641:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VQNEGv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1555,
GIR_Done,
// Label 865: @35938
GIM_Try, /*On fail goto*//*Label 866*/ 35985, // Rule ID 1556 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2641:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQNEGv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1556,
GIR_Done,
// Label 866: @35985
GIM_Try, /*On fail goto*//*Label 867*/ 36032, // Rule ID 1557 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqneg,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2641:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQNEGv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQNEGv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1557,
GIR_Done,
// Label 867: @36032
GIM_Try, /*On fail goto*//*Label 868*/ 36079, // Rule ID 1558 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2582:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) => (VCLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1558,
GIR_Done,
// Label 868: @36079
GIM_Try, /*On fail goto*//*Label 869*/ 36126, // Rule ID 1559 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2582:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VCLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1559,
GIR_Done,
// Label 869: @36126
GIM_Try, /*On fail goto*//*Label 870*/ 36173, // Rule ID 1560 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2582:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) => (VCLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1560,
GIR_Done,
// Label 870: @36173
GIM_Try, /*On fail goto*//*Label 871*/ 36220, // Rule ID 1561 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2582:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (VCLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1561,
GIR_Done,
// Label 871: @36220
GIM_Try, /*On fail goto*//*Label 872*/ 36267, // Rule ID 1562 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2582:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VCLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1562,
GIR_Done,
// Label 872: @36267
GIM_Try, /*On fail goto*//*Label 873*/ 36314, // Rule ID 1563 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2582:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VCLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLSv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1563,
GIR_Done,
// Label 873: @36314
GIM_Try, /*On fail goto*//*Label 874*/ 36361, // Rule ID 1607 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovns,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2638:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1607,
GIR_Done,
// Label 874: @36361
GIM_Try, /*On fail goto*//*Label 875*/ 36408, // Rule ID 1608 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovns,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2638:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1608,
GIR_Done,
// Label 875: @36408
GIM_Try, /*On fail goto*//*Label 876*/ 36455, // Rule ID 1609 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovns,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2638:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1609,
GIR_Done,
// Label 876: @36455
GIM_Try, /*On fail goto*//*Label 877*/ 36502, // Rule ID 1610 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2640:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1610,
GIR_Done,
// Label 877: @36502
GIM_Try, /*On fail goto*//*Label 878*/ 36549, // Rule ID 1611 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2640:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1611,
GIR_Done,
// Label 878: @36549
GIM_Try, /*On fail goto*//*Label 879*/ 36596, // Rule ID 1612 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2640:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1612,
GIR_Done,
// Label 879: @36596
GIM_Try, /*On fail goto*//*Label 880*/ 36643, // Rule ID 1613 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnsu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2639:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) => (VQMOVNsuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1613,
GIR_Done,
// Label 880: @36643
GIM_Try, /*On fail goto*//*Label 881*/ 36690, // Rule ID 1614 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnsu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2639:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) => (VQMOVNsuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1614,
GIR_Done,
// Label 881: @36690
GIM_Try, /*On fail goto*//*Label 882*/ 36737, // Rule ID 1615 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqmovnsu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2639:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) => (VQMOVNsuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQMOVNsuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1615,
GIR_Done,
// Label 882: @36737
GIM_Try, /*On fail goto*//*Label 883*/ 36777, // Rule ID 1638 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtas,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2583:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTANSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANSDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1638,
GIR_Done,
// Label 883: @36777
GIM_Try, /*On fail goto*//*Label 884*/ 36817, // Rule ID 1639 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtas,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2583:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTANSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANSQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1639,
GIR_Done,
// Label 884: @36817
GIM_Try, /*On fail goto*//*Label 885*/ 36857, // Rule ID 1640 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtau,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2584:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTANUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANUDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1640,
GIR_Done,
// Label 885: @36857
GIM_Try, /*On fail goto*//*Label 886*/ 36897, // Rule ID 1641 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtau,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2584:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTANUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANUQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1641,
GIR_Done,
// Label 886: @36897
GIM_Try, /*On fail goto*//*Label 887*/ 36937, // Rule ID 1642 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtas,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2583:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTANSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANSDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1642,
GIR_Done,
// Label 887: @36937
GIM_Try, /*On fail goto*//*Label 888*/ 36977, // Rule ID 1643 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtas,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2583:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTANSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANSQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1643,
GIR_Done,
// Label 888: @36977
GIM_Try, /*On fail goto*//*Label 889*/ 37017, // Rule ID 1644 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtau,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2584:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTANUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANUDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1644,
GIR_Done,
// Label 889: @37017
GIM_Try, /*On fail goto*//*Label 890*/ 37057, // Rule ID 1645 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtau,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2584:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTANUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTANUQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1645,
GIR_Done,
// Label 890: @37057
GIM_Try, /*On fail goto*//*Label 891*/ 37097, // Rule ID 1646 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtns,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2595:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTNNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNSDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1646,
GIR_Done,
// Label 891: @37097
GIM_Try, /*On fail goto*//*Label 892*/ 37137, // Rule ID 1647 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtns,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2595:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTNNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNSQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1647,
GIR_Done,
// Label 892: @37137
GIM_Try, /*On fail goto*//*Label 893*/ 37177, // Rule ID 1648 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtnu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2596:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTNNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNUDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1648,
GIR_Done,
// Label 893: @37177
GIM_Try, /*On fail goto*//*Label 894*/ 37217, // Rule ID 1649 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtnu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2596:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTNNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNUQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1649,
GIR_Done,
// Label 894: @37217
GIM_Try, /*On fail goto*//*Label 895*/ 37257, // Rule ID 1650 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtns,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2595:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTNNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNSDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1650,
GIR_Done,
// Label 895: @37257
GIM_Try, /*On fail goto*//*Label 896*/ 37297, // Rule ID 1651 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtns,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2595:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTNNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNSQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1651,
GIR_Done,
// Label 896: @37297
GIM_Try, /*On fail goto*//*Label 897*/ 37337, // Rule ID 1652 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtnu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2596:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTNNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNUDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1652,
GIR_Done,
// Label 897: @37337
GIM_Try, /*On fail goto*//*Label 898*/ 37377, // Rule ID 1653 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtnu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2596:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTNNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTNNUQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1653,
GIR_Done,
// Label 898: @37377
GIM_Try, /*On fail goto*//*Label 899*/ 37417, // Rule ID 1654 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtps,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2597:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTPNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNSDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1654,
GIR_Done,
// Label 899: @37417
GIM_Try, /*On fail goto*//*Label 900*/ 37457, // Rule ID 1655 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtps,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2597:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTPNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNSQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1655,
GIR_Done,
// Label 900: @37457
GIM_Try, /*On fail goto*//*Label 901*/ 37497, // Rule ID 1656 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtpu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2598:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTPNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNUDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1656,
GIR_Done,
// Label 901: @37497
GIM_Try, /*On fail goto*//*Label 902*/ 37537, // Rule ID 1657 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtpu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2598:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTPNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNUQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1657,
GIR_Done,
// Label 902: @37537
GIM_Try, /*On fail goto*//*Label 903*/ 37577, // Rule ID 1658 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtps,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2597:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTPNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNSDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1658,
GIR_Done,
// Label 903: @37577
GIM_Try, /*On fail goto*//*Label 904*/ 37617, // Rule ID 1659 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtps,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2597:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTPNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNSQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1659,
GIR_Done,
// Label 904: @37617
GIM_Try, /*On fail goto*//*Label 905*/ 37657, // Rule ID 1660 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtpu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2598:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTPNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNUDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1660,
GIR_Done,
// Label 905: @37657
GIM_Try, /*On fail goto*//*Label 906*/ 37697, // Rule ID 1661 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtpu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2598:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTPNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTPNUQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1661,
GIR_Done,
// Label 906: @37697
GIM_Try, /*On fail goto*//*Label 907*/ 37737, // Rule ID 1662 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtms,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2593:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTMNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNSDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1662,
GIR_Done,
// Label 907: @37737
GIM_Try, /*On fail goto*//*Label 908*/ 37777, // Rule ID 1663 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtms,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2593:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTMNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNSQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1663,
GIR_Done,
// Label 908: @37777
GIM_Try, /*On fail goto*//*Label 909*/ 37817, // Rule ID 1664 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtmu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2594:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VCVTMNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNUDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1664,
GIR_Done,
// Label 909: @37817
GIM_Try, /*On fail goto*//*Label 910*/ 37857, // Rule ID 1665 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtmu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2594:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTMNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNUQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1665,
GIR_Done,
// Label 910: @37857
GIM_Try, /*On fail goto*//*Label 911*/ 37897, // Rule ID 1666 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtms,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2593:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTMNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNSDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1666,
GIR_Done,
// Label 911: @37897
GIM_Try, /*On fail goto*//*Label 912*/ 37937, // Rule ID 1667 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtms,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2593:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTMNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNSQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1667,
GIR_Done,
// Label 912: @37937
GIM_Try, /*On fail goto*//*Label 913*/ 37977, // Rule ID 1668 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtmu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2594:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VCVTMNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNUDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1668,
GIR_Done,
// Label 913: @37977
GIM_Try, /*On fail goto*//*Label 914*/ 38017, // Rule ID 1669 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtmu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2594:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VCVTMNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTMNUQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1669,
GIR_Done,
// Label 914: @38017
GIM_Try, /*On fail goto*//*Label 915*/ 38064, // Rule ID 1686 //
GIM_CheckFeatures, GIFBS_HasFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2hf,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2589:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VCVTf2h:{ *:[v4i16] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2h,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1686,
GIR_Done,
// Label 915: @38064
GIM_Try, /*On fail goto*//*Label 916*/ 38111, // Rule ID 1687 //
GIM_CheckFeatures, GIFBS_HasFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvthf2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2592:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) => (VCVTh2f:{ *:[v4f32] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2f,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1687,
GIR_Done,
// Label 916: @38111
GIM_Try, /*On fail goto*//*Label 917*/ 38151, // Rule ID 1709 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2663:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTNNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNNDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1709,
GIR_Done,
// Label 917: @38151
GIM_Try, /*On fail goto*//*Label 918*/ 38191, // Rule ID 1710 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2663:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTNNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNNQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1710,
GIR_Done,
// Label 918: @38191
GIM_Try, /*On fail goto*//*Label 919*/ 38231, // Rule ID 1711 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2663:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTNNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNNDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1711,
GIR_Done,
// Label 919: @38231
GIM_Try, /*On fail goto*//*Label 920*/ 38271, // Rule ID 1712 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2663:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTNNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTNNQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1712,
GIR_Done,
// Label 920: @38271
GIM_Try, /*On fail goto*//*Label 921*/ 38311, // Rule ID 1713 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2665:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTXNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXNDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1713,
GIR_Done,
// Label 921: @38311
GIM_Try, /*On fail goto*//*Label 922*/ 38351, // Rule ID 1714 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2665:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTXNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXNQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1714,
GIR_Done,
// Label 922: @38351
GIM_Try, /*On fail goto*//*Label 923*/ 38391, // Rule ID 1715 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2665:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTXNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXNDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1715,
GIR_Done,
// Label 923: @38391
GIM_Try, /*On fail goto*//*Label 924*/ 38431, // Rule ID 1716 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2665:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTXNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXNQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1716,
GIR_Done,
// Label 924: @38431
GIM_Try, /*On fail goto*//*Label 925*/ 38471, // Rule ID 1717 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrinta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2661:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTANDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTANDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1717,
GIR_Done,
// Label 925: @38471
GIM_Try, /*On fail goto*//*Label 926*/ 38511, // Rule ID 1718 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrinta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2661:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTANQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTANQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1718,
GIR_Done,
// Label 926: @38511
GIM_Try, /*On fail goto*//*Label 927*/ 38551, // Rule ID 1719 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrinta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2661:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTANDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTANDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1719,
GIR_Done,
// Label 927: @38551
GIM_Try, /*On fail goto*//*Label 928*/ 38591, // Rule ID 1720 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrinta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2661:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTANQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTANQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1720,
GIR_Done,
// Label 928: @38591
GIM_Try, /*On fail goto*//*Label 929*/ 38631, // Rule ID 1721 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintz,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2666:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTZNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZNDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1721,
GIR_Done,
// Label 929: @38631
GIM_Try, /*On fail goto*//*Label 930*/ 38671, // Rule ID 1722 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintz,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2666:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTZNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZNQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1722,
GIR_Done,
// Label 930: @38671
GIM_Try, /*On fail goto*//*Label 931*/ 38711, // Rule ID 1723 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintz,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2666:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTZNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZNDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1723,
GIR_Done,
// Label 931: @38711
GIM_Try, /*On fail goto*//*Label 932*/ 38751, // Rule ID 1724 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintz,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2666:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTZNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTZNQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1724,
GIR_Done,
// Label 932: @38751
GIM_Try, /*On fail goto*//*Label 933*/ 38791, // Rule ID 1725 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2662:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTMNDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1725,
GIR_Done,
// Label 933: @38791
GIM_Try, /*On fail goto*//*Label 934*/ 38831, // Rule ID 1726 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2662:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTMNQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1726,
GIR_Done,
// Label 934: @38831
GIM_Try, /*On fail goto*//*Label 935*/ 38871, // Rule ID 1727 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2662:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTMNDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1727,
GIR_Done,
// Label 935: @38871
GIM_Try, /*On fail goto*//*Label 936*/ 38911, // Rule ID 1728 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2662:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTMNQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1728,
GIR_Done,
// Label 936: @38911
GIM_Try, /*On fail goto*//*Label 937*/ 38951, // Rule ID 1729 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2664:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) => (VRINTPNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTPNDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1729,
GIR_Done,
// Label 937: @38951
GIM_Try, /*On fail goto*//*Label 938*/ 38991, // Rule ID 1730 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2664:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) => (VRINTPNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTPNQf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1730,
GIR_Done,
// Label 938: @38991
GIM_Try, /*On fail goto*//*Label 939*/ 39031, // Rule ID 1731 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2664:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) => (VRINTPNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTPNDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1731,
GIR_Done,
// Label 939: @39031
GIM_Try, /*On fail goto*//*Label 940*/ 39071, // Rule ID 1732 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrintp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2664:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) => (VRINTPNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTPNQh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1732,
GIR_Done,
// Label 940: @39071
GIM_Try, /*On fail goto*//*Label 941*/ 39111, // Rule ID 1735 //
GIM_CheckFeatures, GIFBS_HasAES_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_aesimc,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2552:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (AESIMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::AESIMC,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1735,
GIR_Done,
// Label 941: @39111
GIM_Try, /*On fail goto*//*Label 942*/ 39151, // Rule ID 1736 //
GIM_CheckFeatures, GIFBS_HasAES_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_aesmc,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2553:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) => (AESMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::AESMC,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1736,
GIR_Done,
// Label 942: @39151
GIM_Try, /*On fail goto*//*Label 943*/ 39201, // Rule ID 1874 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sxtb16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2752:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) => (SXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SXTB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1874,
GIR_Done,
// Label 943: @39201
GIM_Try, /*On fail goto*//*Label 944*/ 39251, // Rule ID 2107 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sxtb16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2752:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (t2SXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SXTB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2107,
GIR_Done,
// Label 944: @39251
GIM_Try, /*On fail goto*//*Label 945*/ 39316, // Rule ID 3760 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2434:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$val) => (MVE_VCLSs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCLSs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3760,
GIR_Done,
// Label 945: @39316
GIM_Try, /*On fail goto*//*Label 946*/ 39381, // Rule ID 3762 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2434:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$val) => (MVE_VCLSs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCLSs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3762,
GIR_Done,
// Label 946: @39381
GIM_Try, /*On fail goto*//*Label 947*/ 39446, // Rule ID 3764 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcls,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2434:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$val) => (MVE_VCLSs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCLSs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3764,
GIR_Done,
// Label 947: @39446
GIM_Try, /*On fail goto*//*Label 948*/ 39511, // Rule ID 4064 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2516:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16N:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf16N,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4064,
GIR_Done,
// Label 948: @39511
GIM_Try, /*On fail goto*//*Label 949*/ 39576, // Rule ID 4076 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrintn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2516:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32N:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf32N,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4076,
GIR_Done,
// Label 949: @39576
GIM_Try, /*On fail goto*//*Label 950*/ 39627, // Rule ID 4964 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vctp8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i1] } 2442:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (MVE_VCTP8:{ *:[v16i1] } rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCTP8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // P0
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4964,
GIR_Done,
// Label 950: @39627
GIM_Try, /*On fail goto*//*Label 951*/ 39678, // Rule ID 4966 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vctp16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i1] } 2439:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (MVE_VCTP16:{ *:[v8i1] } rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCTP16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // P0
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4966,
GIR_Done,
// Label 951: @39678
GIM_Try, /*On fail goto*//*Label 952*/ 39729, // Rule ID 4968 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vctp32,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i1] } 2440:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (MVE_VCTP32:{ *:[v4i1] } rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCTP32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // P0
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4968,
GIR_Done,
// Label 952: @39729
GIM_Try, /*On fail goto*//*Label 953*/ 39780, // Rule ID 4970 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vctp64,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s1,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i1] } 2441:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) => (MVE_VCTP64:{ *:[v2i1] } rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCTP64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // P0
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4970,
GIR_Done,
// Label 953: @39780
GIM_Try, /*On fail goto*//*Label 954*/ 39827, // Rule ID 616 //
GIM_CheckFeatures, GIFBS_Has8MSecExt_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_cmse_tt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
// MIs[0] Rn
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2324:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) => (t2TT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2TT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 616,
GIR_Done,
// Label 954: @39827
GIM_Try, /*On fail goto*//*Label 955*/ 39874, // Rule ID 617 //
GIM_CheckFeatures, GIFBS_Has8MSecExt_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_cmse_ttt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
// MIs[0] Rn
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2327:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) => (t2TTT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2TTT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 617,
GIR_Done,
// Label 955: @39874
GIM_Try, /*On fail goto*//*Label 956*/ 39921, // Rule ID 618 //
GIM_CheckFeatures, GIFBS_Has8MSecExt_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_cmse_tta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
// MIs[0] Rn
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2325:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) => (t2TTA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2TTA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 618,
GIR_Done,
// Label 956: @39921
GIM_Try, /*On fail goto*//*Label 957*/ 39968, // Rule ID 619 //
GIM_CheckFeatures, GIFBS_Has8MSecExt_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_cmse_ttat,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
// MIs[0] Rn
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2326:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) => (t2TTAT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2TTAT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 619,
GIR_Done,
// Label 957: @39968
GIM_Try, /*On fail goto*//*Label 958*/ 40089, // Rule ID 2708 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha1h,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2560:{ *:[iPTR] }, i32:{ *:[i32] }:$Rn) => (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[f32] } (SHA1H:{ *:[v16i8] } (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$Rn, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] }), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v16s8,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v16s8,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::SUBREG_TO_REG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/3, /*Imm*/0,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPair_with_ssub_0RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::SHA1H,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempSubRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0, ARM::ssub_0,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, ARM::MQPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2708,
GIR_Done,
// Label 958: @40089
GIM_Reject,
// Label 822: @40090
GIM_Try, /*On fail goto*//*Label 959*/ 62799,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
GIM_Try, /*On fail goto*//*Label 960*/ 40157, // Rule ID 2125 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uxtab16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2776:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UXTAB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2125,
GIR_Done,
// Label 960: @40157
GIM_Try, /*On fail goto*//*Label 961*/ 40255, // Rule ID 1915 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[2] Operand 1
// No operand predicates
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/3, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (intrinsic_wo_chain:{ *:[i32] } 2771:{ *:[iPTR] }, (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$shft), (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) => (USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$shft)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // pos
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // shft
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1915,
GIR_Done,
// Label 961: @40255
GIM_Try, /*On fail goto*//*Label 962*/ 40353, // Rule ID 2165 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SHL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[2] Operand 1
// No operand predicates
GIM_RecordInsn, /*DefineMI*/3, /*MI*/0, /*OpIdx*/3, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/3, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[3] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (intrinsic_wo_chain:{ *:[i32] } 2771:{ *:[iPTR] }, (shl:{ *:[i32] } GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$shft), (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) => (t2USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$shft)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/3, // pos
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // shft
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2165,
GIR_Done,
// Label 962: @40353
GIM_Try, /*On fail goto*//*Label 963*/ 40437, // Rule ID 5530 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn), GPRnopc:{ *:[i32] }:$Rm) => (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5530,
GIR_Done,
// Label 963: @40437
GIM_Try, /*On fail goto*//*Label 964*/ 40521, // Rule ID 5787 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Rm) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5787,
GIR_Done,
// Label 964: @40521
GIM_Try, /*On fail goto*//*Label 965*/ 40605, // Rule ID 109 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn)) => (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 109,
GIR_Done,
// Label 965: @40605
GIM_Try, /*On fail goto*//*Label 966*/ 40689, // Rule ID 110 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2699:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn)) => (QDSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDSUB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 110,
GIR_Done,
// Label 966: @40689
GIM_Try, /*On fail goto*//*Label 967*/ 40773, // Rule ID 2143 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2143,
GIR_Done,
// Label 967: @40773
GIM_Try, /*On fail goto*//*Label 968*/ 40857, // Rule ID 2144 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2699:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDSUB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2144,
GIR_Done,
// Label 968: @40857
GIM_Try, /*On fail goto*//*Label 969*/ 40930, // Rule ID 4156 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2450:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTs16f16a:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs16f16a,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4156,
GIR_Done,
// Label 969: @40930
GIM_Try, /*On fail goto*//*Label 970*/ 41003, // Rule ID 4158 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2454:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTs16f16n:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs16f16n,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4158,
GIR_Done,
// Label 970: @41003
GIM_Try, /*On fail goto*//*Label 971*/ 41076, // Rule ID 4160 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2456:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTs16f16p:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs16f16p,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4160,
GIR_Done,
// Label 971: @41076
GIM_Try, /*On fail goto*//*Label 972*/ 41149, // Rule ID 4162 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2452:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTs16f16m:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs16f16m,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4162,
GIR_Done,
// Label 972: @41149
GIM_Try, /*On fail goto*//*Label 973*/ 41222, // Rule ID 4164 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2450:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTu16f16a:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu16f16a,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4164,
GIR_Done,
// Label 973: @41222
GIM_Try, /*On fail goto*//*Label 974*/ 41295, // Rule ID 4166 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2454:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTu16f16n:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu16f16n,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4166,
GIR_Done,
// Label 974: @41295
GIM_Try, /*On fail goto*//*Label 975*/ 41368, // Rule ID 4168 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2456:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTu16f16p:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu16f16p,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4168,
GIR_Done,
// Label 975: @41368
GIM_Try, /*On fail goto*//*Label 976*/ 41441, // Rule ID 4170 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2452:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$in) => (MVE_VCVTu16f16m:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu16f16m,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4170,
GIR_Done,
// Label 976: @41441
GIM_Try, /*On fail goto*//*Label 977*/ 41514, // Rule ID 4172 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2450:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTs32f32a:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs32f32a,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4172,
GIR_Done,
// Label 977: @41514
GIM_Try, /*On fail goto*//*Label 978*/ 41587, // Rule ID 4174 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2454:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTs32f32n:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs32f32n,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4174,
GIR_Done,
// Label 978: @41587
GIM_Try, /*On fail goto*//*Label 979*/ 41660, // Rule ID 4176 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2456:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTs32f32p:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs32f32p,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4176,
GIR_Done,
// Label 979: @41660
GIM_Try, /*On fail goto*//*Label 980*/ 41733, // Rule ID 4178 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2452:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTs32f32m:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs32f32m,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4178,
GIR_Done,
// Label 980: @41733
GIM_Try, /*On fail goto*//*Label 981*/ 41806, // Rule ID 4180 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvta,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2450:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTu32f32a:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu32f32a,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4180,
GIR_Done,
// Label 981: @41806
GIM_Try, /*On fail goto*//*Label 982*/ 41879, // Rule ID 4182 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2454:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTu32f32n:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu32f32n,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4182,
GIR_Done,
// Label 982: @41879
GIM_Try, /*On fail goto*//*Label 983*/ 41952, // Rule ID 4184 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2456:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTu32f32p:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu32f32p,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4184,
GIR_Done,
// Label 983: @41952
GIM_Try, /*On fail goto*//*Label 984*/ 42025, // Rule ID 4186 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvtm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2452:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$in) => (MVE_VCVTu32f32m:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$in)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu32f32m,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // in
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4186,
GIR_Done,
// Label 984: @42025
GIM_Try, /*On fail goto*//*Label 985*/ 42098, // Rule ID 4630 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_widen,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
// (intrinsic_wo_chain:{ *:[v4f32] } 2448:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, 0:{ *:[i32] }) => (MVE_VCVTf32f16bh:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$Qm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf32f16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4630,
GIR_Done,
// Label 985: @42098
GIM_Try, /*On fail goto*//*Label 986*/ 42171, // Rule ID 4636 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_widen,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
// (intrinsic_wo_chain:{ *:[v4f32] } 2448:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, 1:{ *:[i32] }) => (MVE_VCVTf32f16th:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$Qm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf32f16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4636,
GIR_Done,
// Label 986: @42171
GIM_Try, /*On fail goto*//*Label 987*/ 42240, // Rule ID 1908 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2771:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) => (USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPRnopc:{ *:[i32] }:$a, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1908,
GIR_Done,
// Label 987: @42240
GIM_Try, /*On fail goto*//*Label 988*/ 42306, // Rule ID 1912 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2772:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos) => (USAT16:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos, GPRnopc:{ *:[i32] }:$a)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAT16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1912,
GIR_Done,
// Label 988: @42306
GIM_Try, /*On fail goto*//*Label 989*/ 42375, // Rule ID 2160 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2771:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos) => (t2USAT:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$pos, GPR:{ *:[i32] }:$a, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2160,
GIR_Done,
// Label 989: @42375
GIM_Try, /*On fail goto*//*Label 990*/ 42441, // Rule ID 2162 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usat16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2772:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos) => (t2USAT16:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$pos, GPR:{ *:[i32] }:$a)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAT16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // pos
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2162,
GIR_Done,
// Label 990: @42441
GIM_Try, /*On fail goto*//*Label 991*/ 42523, // Rule ID 4028 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshlu_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_7,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2509:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) => (MVE_VQSHLU_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLU_imms8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4028,
GIR_Done,
// Label 991: @42523
GIM_Try, /*On fail goto*//*Label 992*/ 42605, // Rule ID 4030 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshlu_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2509:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) => (MVE_VQSHLU_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLU_imms16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4030,
GIR_Done,
// Label 992: @42605
GIM_Try, /*On fail goto*//*Label 993*/ 42687, // Rule ID 4032 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshlu_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2509:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) => (MVE_VQSHLU_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLU_imms32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4032,
GIR_Done,
// Label 993: @42687
GIM_Try, /*On fail goto*//*Label 994*/ 42750, // Rule ID 1670 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v2i32] } 2587:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xsd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2xsd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1670,
GIR_Done,
// Label 994: @42750
GIM_Try, /*On fail goto*//*Label 995*/ 42813, // Rule ID 1671 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v2i32] } 2588:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2xud,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1671,
GIR_Done,
// Label 995: @42813
GIM_Try, /*On fail goto*//*Label 996*/ 42876, // Rule ID 1672 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxs2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v2f32] } 2590:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxs2fd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1672,
GIR_Done,
// Label 996: @42876
GIM_Try, /*On fail goto*//*Label 997*/ 42939, // Rule ID 1673 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxu2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v2f32] } 2591:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxu2fd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1673,
GIR_Done,
// Label 997: @42939
GIM_Try, /*On fail goto*//*Label 998*/ 43002, // Rule ID 1674 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i16] } 2587:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xsd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2xsd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1674,
GIR_Done,
// Label 998: @43002
GIM_Try, /*On fail goto*//*Label 999*/ 43065, // Rule ID 1675 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i16] } 2588:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2xud,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1675,
GIR_Done,
// Label 999: @43065
GIM_Try, /*On fail goto*//*Label 1000*/ 43128, // Rule ID 1676 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxs2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f16] } 2590:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxs2hd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1676,
GIR_Done,
// Label 1000: @43128
GIM_Try, /*On fail goto*//*Label 1001*/ 43191, // Rule ID 1677 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxu2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f16] } 2591:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxu2hd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1677,
GIR_Done,
// Label 1001: @43191
GIM_Try, /*On fail goto*//*Label 1002*/ 43254, // Rule ID 1678 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2587:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xsq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2xsq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1678,
GIR_Done,
// Label 1002: @43254
GIM_Try, /*On fail goto*//*Label 1003*/ 43317, // Rule ID 1679 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2588:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTf2xuq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2xuq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1679,
GIR_Done,
// Label 1003: @43317
GIM_Try, /*On fail goto*//*Label 1004*/ 43380, // Rule ID 1680 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxs2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f32] } 2590:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxs2fq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1680,
GIR_Done,
// Label 1004: @43380
GIM_Try, /*On fail goto*//*Label 1005*/ 43443, // Rule ID 1681 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxu2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f32] } 2591:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxu2fq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1681,
GIR_Done,
// Label 1005: @43443
GIM_Try, /*On fail goto*//*Label 1006*/ 43506, // Rule ID 1682 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2587:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xsq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2xsq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1682,
GIR_Done,
// Label 1006: @43506
GIM_Try, /*On fail goto*//*Label 1007*/ 43569, // Rule ID 1683 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfp2fxu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2588:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTh2xuq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2xuq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1683,
GIR_Done,
// Label 1007: @43569
GIM_Try, /*On fail goto*//*Label 1008*/ 43632, // Rule ID 1684 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxs2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8f16] } 2590:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxs2hq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1684,
GIR_Done,
// Label 1008: @43632
GIM_Try, /*On fail goto*//*Label 1009*/ 43695, // Rule ID 1685 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcvtfxu2fp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8f16] } 2591:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) => (VCVTxu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTxu2hq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // SIMM
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1685,
GIR_Done,
// Label 1009: @43695
GIM_Try, /*On fail goto*//*Label 1010*/ 43758, // Rule ID 1748 //
GIM_CheckFeatures, GIFBS_HasMVEInt_HasV8_1MMainline,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_sqshl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2414:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) => (MVE_SQSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_SQSHL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RdaSrc
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1748,
GIR_Done,
// Label 1010: @43758
GIM_Try, /*On fail goto*//*Label 1011*/ 43821, // Rule ID 1749 //
GIM_CheckFeatures, GIFBS_HasMVEInt_HasV8_1MMainline,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_srshr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2416:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) => (MVE_SRSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_SRSHR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RdaSrc
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1749,
GIR_Done,
// Label 1011: @43821
GIM_Try, /*On fail goto*//*Label 1012*/ 43884, // Rule ID 1750 //
GIM_CheckFeatures, GIFBS_HasMVEInt_HasV8_1MMainline,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_uqshl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2421:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) => (MVE_UQSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_UQSHL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RdaSrc
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1750,
GIR_Done,
// Label 1012: @43884
GIM_Try, /*On fail goto*//*Label 1013*/ 43947, // Rule ID 1751 //
GIM_CheckFeatures, GIFBS_HasMVEInt_HasV8_1MMainline,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_urshr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[i32] } 2423:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) => (MVE_URSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_URSHR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RdaSrc
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1751,
GIR_Done,
// Label 1013: @43947
GIM_Try, /*On fail goto*//*Label 1014*/ 44006, // Rule ID 105 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2696:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 105,
GIR_Done,
// Label 1014: @44006
GIM_Try, /*On fail goto*//*Label 1015*/ 44065, // Rule ID 106 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2695:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 106,
GIR_Done,
// Label 1015: @44065
GIM_Try, /*On fail goto*//*Label 1016*/ 44124, // Rule ID 107 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2700:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 107,
GIR_Done,
// Label 1016: @44124
GIM_Try, /*On fail goto*//*Label 1017*/ 44183, // Rule ID 108 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2701:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 108,
GIR_Done,
// Label 1017: @44183
GIM_Try, /*On fail goto*//*Label 1018*/ 44242, // Rule ID 111 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2699:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (QSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSUB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 111,
GIR_Done,
// Label 1018: @44242
GIM_Try, /*On fail goto*//*Label 1019*/ 44301, // Rule ID 112 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) => (QADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 112,
GIR_Done,
// Label 1019: @44301
GIM_Try, /*On fail goto*//*Label 1020*/ 44360, // Rule ID 113 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2763:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 113,
GIR_Done,
// Label 1020: @44360
GIM_Try, /*On fail goto*//*Label 1021*/ 44419, // Rule ID 114 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2764:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 114,
GIR_Done,
// Label 1021: @44419
GIM_Try, /*On fail goto*//*Label 1022*/ 44478, // Rule ID 115 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2767:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 115,
GIR_Done,
// Label 1022: @44478
GIM_Try, /*On fail goto*//*Label 1023*/ 44537, // Rule ID 116 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2768:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 116,
GIR_Done,
// Label 1023: @44537
GIM_Try, /*On fail goto*//*Label 1024*/ 44596, // Rule ID 117 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2697:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 117,
GIR_Done,
// Label 1024: @44596
GIM_Try, /*On fail goto*//*Label 1025*/ 44655, // Rule ID 118 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2698:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (QSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 118,
GIR_Done,
// Label 1025: @44655
GIM_Try, /*On fail goto*//*Label 1026*/ 44714, // Rule ID 119 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2765:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 119,
GIR_Done,
// Label 1026: @44714
GIM_Try, /*On fail goto*//*Label 1027*/ 44773, // Rule ID 120 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2766:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UQSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UQSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 120,
GIR_Done,
// Label 1027: @44773
GIM_Try, /*On fail goto*//*Label 1028*/ 44832, // Rule ID 133 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2709:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 133,
GIR_Done,
// Label 1028: @44832
GIM_Try, /*On fail goto*//*Label 1029*/ 44891, // Rule ID 134 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2707:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 134,
GIR_Done,
// Label 1029: @44891
GIM_Try, /*On fail goto*//*Label 1030*/ 44950, // Rule ID 135 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2708:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 135,
GIR_Done,
// Label 1030: @44950
GIM_Try, /*On fail goto*//*Label 1031*/ 45009, // Rule ID 136 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2710:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 136,
GIR_Done,
// Label 1031: @45009
GIM_Try, /*On fail goto*//*Label 1032*/ 45068, // Rule ID 137 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2711:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 137,
GIR_Done,
// Label 1032: @45068
GIM_Try, /*On fail goto*//*Label 1033*/ 45127, // Rule ID 138 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2712:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 138,
GIR_Done,
// Label 1033: @45127
GIM_Try, /*On fail goto*//*Label 1034*/ 45186, // Rule ID 139 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2758:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 139,
GIR_Done,
// Label 1034: @45186
GIM_Try, /*On fail goto*//*Label 1035*/ 45245, // Rule ID 140 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2756:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 140,
GIR_Done,
// Label 1035: @45245
GIM_Try, /*On fail goto*//*Label 1036*/ 45304, // Rule ID 141 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2757:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 141,
GIR_Done,
// Label 1036: @45304
GIM_Try, /*On fail goto*//*Label 1037*/ 45363, // Rule ID 142 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2759:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 142,
GIR_Done,
// Label 1037: @45363
GIM_Try, /*On fail goto*//*Label 1038*/ 45422, // Rule ID 143 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2760:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 143,
GIR_Done,
// Label 1038: @45422
GIM_Try, /*On fail goto*//*Label 1039*/ 45481, // Rule ID 144 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2761:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UHSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 144,
GIR_Done,
// Label 1039: @45481
GIM_Try, /*On fail goto*//*Label 1040*/ 45540, // Rule ID 145 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usad8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2769:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (USAD8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 145,
GIR_Done,
// Label 1040: @45540
GIM_Try, /*On fail goto*//*Label 1041*/ 45592, // Rule ID 204 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32b,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2328:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32B:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32B,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 204,
GIR_Done,
// Label 1041: @45592
GIM_Try, /*On fail goto*//*Label 1042*/ 45644, // Rule ID 205 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32cb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2329:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32CB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 205,
GIR_Done,
// Label 1042: @45644
GIM_Try, /*On fail goto*//*Label 1043*/ 45696, // Rule ID 206 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32h,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2332:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32H:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32H,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 206,
GIR_Done,
// Label 1043: @45696
GIM_Try, /*On fail goto*//*Label 1044*/ 45748, // Rule ID 207 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32ch,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2330:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CH:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32CH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 207,
GIR_Done,
// Label 1044: @45748
GIM_Try, /*On fail goto*//*Label 1045*/ 45800, // Rule ID 208 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32w,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2333:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32W:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32W,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 208,
GIR_Done,
// Label 1045: @45800
GIM_Try, /*On fail goto*//*Label 1046*/ 45852, // Rule ID 209 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32cw,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2331:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (CRC32CW:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CRC32CW,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 209,
GIR_Done,
// Label 1046: @45852
GIM_Try, /*On fail goto*//*Label 1047*/ 45911, // Rule ID 439 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2695:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 439,
GIR_Done,
// Label 1047: @45911
GIM_Try, /*On fail goto*//*Label 1048*/ 45970, // Rule ID 440 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2696:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 440,
GIR_Done,
// Label 1048: @45970
GIM_Try, /*On fail goto*//*Label 1049*/ 46029, // Rule ID 441 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2697:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 441,
GIR_Done,
// Label 1049: @46029
GIM_Try, /*On fail goto*//*Label 1050*/ 46088, // Rule ID 442 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2768:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 442,
GIR_Done,
// Label 1050: @46088
GIM_Try, /*On fail goto*//*Label 1051*/ 46147, // Rule ID 443 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2698:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 443,
GIR_Done,
// Label 1051: @46147
GIM_Try, /*On fail goto*//*Label 1052*/ 46206, // Rule ID 444 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2700:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 444,
GIR_Done,
// Label 1052: @46206
GIM_Try, /*On fail goto*//*Label 1053*/ 46265, // Rule ID 445 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2701:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2QSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 445,
GIR_Done,
// Label 1053: @46265
GIM_Try, /*On fail goto*//*Label 1054*/ 46324, // Rule ID 446 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2763:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 446,
GIR_Done,
// Label 1054: @46324
GIM_Try, /*On fail goto*//*Label 1055*/ 46383, // Rule ID 447 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2764:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 447,
GIR_Done,
// Label 1055: @46383
GIM_Try, /*On fail goto*//*Label 1056*/ 46442, // Rule ID 448 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2765:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 448,
GIR_Done,
// Label 1056: @46442
GIM_Try, /*On fail goto*//*Label 1057*/ 46501, // Rule ID 449 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2766:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 449,
GIR_Done,
// Label 1057: @46501
GIM_Try, /*On fail goto*//*Label 1058*/ 46560, // Rule ID 450 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uqsub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2767:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UQSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UQSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 450,
GIR_Done,
// Label 1058: @46560
GIM_Try, /*On fail goto*//*Label 1059*/ 46619, // Rule ID 463 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2709:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 463,
GIR_Done,
// Label 1059: @46619
GIM_Try, /*On fail goto*//*Label 1060*/ 46678, // Rule ID 464 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2707:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 464,
GIR_Done,
// Label 1060: @46678
GIM_Try, /*On fail goto*//*Label 1061*/ 46737, // Rule ID 465 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2708:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 465,
GIR_Done,
// Label 1061: @46737
GIM_Try, /*On fail goto*//*Label 1062*/ 46796, // Rule ID 466 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2710:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 466,
GIR_Done,
// Label 1062: @46796
GIM_Try, /*On fail goto*//*Label 1063*/ 46855, // Rule ID 467 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2711:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 467,
GIR_Done,
// Label 1063: @46855
GIM_Try, /*On fail goto*//*Label 1064*/ 46914, // Rule ID 468 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_shsub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2712:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SHSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 468,
GIR_Done,
// Label 1064: @46914
GIM_Try, /*On fail goto*//*Label 1065*/ 46973, // Rule ID 469 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2758:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 469,
GIR_Done,
// Label 1065: @46973
GIM_Try, /*On fail goto*//*Label 1066*/ 47032, // Rule ID 470 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2756:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 470,
GIR_Done,
// Label 1066: @47032
GIM_Try, /*On fail goto*//*Label 1067*/ 47091, // Rule ID 471 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2757:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 471,
GIR_Done,
// Label 1067: @47091
GIM_Try, /*On fail goto*//*Label 1068*/ 47150, // Rule ID 472 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2759:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 472,
GIR_Done,
// Label 1068: @47150
GIM_Try, /*On fail goto*//*Label 1069*/ 47209, // Rule ID 473 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2760:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 473,
GIR_Done,
// Label 1069: @47209
GIM_Try, /*On fail goto*//*Label 1070*/ 47268, // Rule ID 474 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uhsub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2761:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UHSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 474,
GIR_Done,
// Label 1070: @47268
GIM_Try, /*On fail goto*//*Label 1071*/ 47327, // Rule ID 475 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usad8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2769:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USAD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 475,
GIR_Done,
// Label 1071: @47327
GIM_Try, /*On fail goto*//*Label 1072*/ 47386, // Rule ID 531 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smuad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2727:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMUAD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 531,
GIR_Done,
// Label 1072: @47386
GIM_Try, /*On fail goto*//*Label 1073*/ 47445, // Rule ID 532 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smuadx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2728:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMUADX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 532,
GIR_Done,
// Label 1073: @47445
GIM_Try, /*On fail goto*//*Label 1074*/ 47504, // Rule ID 533 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smusd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2735:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMUSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 533,
GIR_Done,
// Label 1074: @47504
GIM_Try, /*On fail goto*//*Label 1075*/ 47563, // Rule ID 534 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smusdx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2736:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMUSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMUSDX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 534,
GIR_Done,
// Label 1075: @47563
GIM_Try, /*On fail goto*//*Label 1076*/ 47615, // Rule ID 548 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32b,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2328:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32B:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32B,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 548,
GIR_Done,
// Label 1076: @47615
GIM_Try, /*On fail goto*//*Label 1077*/ 47667, // Rule ID 549 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32cb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2329:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32CB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 549,
GIR_Done,
// Label 1077: @47667
GIM_Try, /*On fail goto*//*Label 1078*/ 47719, // Rule ID 550 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32h,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2332:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32H:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32H,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 550,
GIR_Done,
// Label 1078: @47719
GIM_Try, /*On fail goto*//*Label 1079*/ 47771, // Rule ID 551 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32ch,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2330:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32CH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 551,
GIR_Done,
// Label 1079: @47771
GIM_Try, /*On fail goto*//*Label 1080*/ 47823, // Rule ID 552 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32w,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2333:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32W:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32W,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 552,
GIR_Done,
// Label 1080: @47823
GIM_Try, /*On fail goto*//*Label 1081*/ 47875, // Rule ID 553 //
GIM_CheckFeatures, GIFBS_HasCRC_HasV8_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_crc32cw,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2331:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2CRC32CW:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CRC32CW,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 553,
GIR_Done,
// Label 1081: @47875
GIM_Try, /*On fail goto*//*Label 1082*/ 47934, // Rule ID 808 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2599:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 808,
GIR_Done,
// Label 1082: @47934
GIM_Try, /*On fail goto*//*Label 1083*/ 47993, // Rule ID 809 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2599:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 809,
GIR_Done,
// Label 1083: @47993
GIM_Try, /*On fail goto*//*Label 1084*/ 48052, // Rule ID 810 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2599:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 810,
GIR_Done,
// Label 1084: @48052
GIM_Try, /*On fail goto*//*Label 1085*/ 48111, // Rule ID 811 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2599:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 811,
GIR_Done,
// Label 1085: @48111
GIM_Try, /*On fail goto*//*Label 1086*/ 48170, // Rule ID 812 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2599:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 812,
GIR_Done,
// Label 1086: @48170
GIM_Try, /*On fail goto*//*Label 1087*/ 48229, // Rule ID 813 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2599:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 813,
GIR_Done,
// Label 1087: @48229
GIM_Try, /*On fail goto*//*Label 1088*/ 48288, // Rule ID 814 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2600:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 814,
GIR_Done,
// Label 1088: @48288
GIM_Try, /*On fail goto*//*Label 1089*/ 48347, // Rule ID 815 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2600:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 815,
GIR_Done,
// Label 1089: @48347
GIM_Try, /*On fail goto*//*Label 1090*/ 48406, // Rule ID 816 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2600:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 816,
GIR_Done,
// Label 1090: @48406
GIM_Try, /*On fail goto*//*Label 1091*/ 48465, // Rule ID 817 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2600:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 817,
GIR_Done,
// Label 1091: @48465
GIM_Try, /*On fail goto*//*Label 1092*/ 48524, // Rule ID 818 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2600:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 818,
GIR_Done,
// Label 1092: @48524
GIM_Try, /*On fail goto*//*Label 1093*/ 48583, // Rule ID 819 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2600:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHADDuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 819,
GIR_Done,
// Label 1093: @48583
GIM_Try, /*On fail goto*//*Label 1094*/ 48642, // Rule ID 820 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2659:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VRHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 820,
GIR_Done,
// Label 1094: @48642
GIM_Try, /*On fail goto*//*Label 1095*/ 48701, // Rule ID 821 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2659:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VRHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 821,
GIR_Done,
// Label 1095: @48701
GIM_Try, /*On fail goto*//*Label 1096*/ 48760, // Rule ID 822 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2659:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 822,
GIR_Done,
// Label 1096: @48760
GIM_Try, /*On fail goto*//*Label 1097*/ 48819, // Rule ID 823 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2659:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 823,
GIR_Done,
// Label 1097: @48819
GIM_Try, /*On fail goto*//*Label 1098*/ 48878, // Rule ID 824 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2659:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VRHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 824,
GIR_Done,
// Label 1098: @48878
GIM_Try, /*On fail goto*//*Label 1099*/ 48937, // Rule ID 825 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhadds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2659:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VRHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 825,
GIR_Done,
// Label 1099: @48937
GIM_Try, /*On fail goto*//*Label 1100*/ 48996, // Rule ID 826 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2660:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VRHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 826,
GIR_Done,
// Label 1100: @48996
GIM_Try, /*On fail goto*//*Label 1101*/ 49055, // Rule ID 827 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2660:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VRHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 827,
GIR_Done,
// Label 1101: @49055
GIM_Try, /*On fail goto*//*Label 1102*/ 49114, // Rule ID 828 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2660:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 828,
GIR_Done,
// Label 1102: @49114
GIM_Try, /*On fail goto*//*Label 1103*/ 49173, // Rule ID 829 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2660:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 829,
GIR_Done,
// Label 1103: @49173
GIM_Try, /*On fail goto*//*Label 1104*/ 49232, // Rule ID 830 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2660:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VRHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 830,
GIR_Done,
// Label 1104: @49232
GIM_Try, /*On fail goto*//*Label 1105*/ 49291, // Rule ID 831 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrhaddu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2660:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VRHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRHADDuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 831,
GIR_Done,
// Label 1105: @49291
GIM_Try, /*On fail goto*//*Label 1106*/ 49350, // Rule ID 848 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vraddhn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2656:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRADDHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRADDHNv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 848,
GIR_Done,
// Label 1106: @49350
GIM_Try, /*On fail goto*//*Label 1107*/ 49409, // Rule ID 849 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vraddhn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2656:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRADDHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRADDHNv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 849,
GIR_Done,
// Label 1107: @49409
GIM_Try, /*On fail goto*//*Label 1108*/ 49468, // Rule ID 850 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vraddhn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2656:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VRADDHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRADDHNv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 850,
GIR_Done,
// Label 1108: @49468
GIM_Try, /*On fail goto*//*Label 1109*/ 49527, // Rule ID 857 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vmulp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2625:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULpd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULpd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 857,
GIR_Done,
// Label 1109: @49527
GIM_Try, /*On fail goto*//*Label 1110*/ 49586, // Rule ID 858 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vmulp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2625:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMULpq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULpq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 858,
GIR_Done,
// Label 1110: @49586
GIM_Try, /*On fail goto*//*Label 1111*/ 49645, // Rule ID 871 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2636:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULHv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 871,
GIR_Done,
// Label 1111: @49645
GIM_Try, /*On fail goto*//*Label 1112*/ 49704, // Rule ID 872 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2636:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULHv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 872,
GIR_Done,
// Label 1112: @49704
GIM_Try, /*On fail goto*//*Label 1113*/ 49763, // Rule ID 873 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2636:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULHv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 873,
GIR_Done,
// Label 1113: @49763
GIM_Try, /*On fail goto*//*Label 1114*/ 49822, // Rule ID 874 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2636:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULHv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 874,
GIR_Done,
// Label 1114: @49822
GIM_Try, /*On fail goto*//*Label 1115*/ 49881, // Rule ID 879 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2644:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQRDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMULHv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 879,
GIR_Done,
// Label 1115: @49881
GIM_Try, /*On fail goto*//*Label 1116*/ 49940, // Rule ID 880 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2644:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQRDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMULHv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 880,
GIR_Done,
// Label 1116: @49940
GIM_Try, /*On fail goto*//*Label 1117*/ 49999, // Rule ID 881 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2644:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQRDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMULHv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 881,
GIR_Done,
// Label 1117: @49999
GIM_Try, /*On fail goto*//*Label 1118*/ 50058, // Rule ID 882 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2644:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQRDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMULHv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 882,
GIR_Done,
// Label 1118: @50058
GIM_Try, /*On fail goto*//*Label 1119*/ 50117, // Rule ID 893 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vmullp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2622:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMULLp8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULLp8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 893,
GIR_Done,
// Label 1119: @50117
GIM_Try, /*On fail goto*//*Label 1120*/ 50169, // Rule ID 894 //
GIM_CheckFeatures, GIFBS_HasAES_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vmullp,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2622:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VMULLp64:{ *:[v2i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULLp64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 894,
GIR_Done,
// Label 1120: @50169
GIM_Try, /*On fail goto*//*Label 1121*/ 50228, // Rule ID 899 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2637:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQDMULLv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULLv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 899,
GIR_Done,
// Label 1121: @50228
GIM_Try, /*On fail goto*//*Label 1122*/ 50287, // Rule ID 900 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqdmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2637:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQDMULLv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMULLv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 900,
GIR_Done,
// Label 1122: @50287
GIM_Try, /*On fail goto*//*Label 1123*/ 50346, // Rule ID 1012 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2601:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1012,
GIR_Done,
// Label 1123: @50346
GIM_Try, /*On fail goto*//*Label 1124*/ 50405, // Rule ID 1013 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2601:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1013,
GIR_Done,
// Label 1124: @50405
GIM_Try, /*On fail goto*//*Label 1125*/ 50464, // Rule ID 1014 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2601:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1014,
GIR_Done,
// Label 1125: @50464
GIM_Try, /*On fail goto*//*Label 1126*/ 50523, // Rule ID 1015 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2601:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1015,
GIR_Done,
// Label 1126: @50523
GIM_Try, /*On fail goto*//*Label 1127*/ 50582, // Rule ID 1016 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2601:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1016,
GIR_Done,
// Label 1127: @50582
GIM_Try, /*On fail goto*//*Label 1128*/ 50641, // Rule ID 1017 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2601:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1017,
GIR_Done,
// Label 1128: @50641
GIM_Try, /*On fail goto*//*Label 1129*/ 50700, // Rule ID 1018 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2602:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VHSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1018,
GIR_Done,
// Label 1129: @50700
GIM_Try, /*On fail goto*//*Label 1130*/ 50759, // Rule ID 1019 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2602:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VHSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1019,
GIR_Done,
// Label 1130: @50759
GIM_Try, /*On fail goto*//*Label 1131*/ 50818, // Rule ID 1020 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2602:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VHSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1020,
GIR_Done,
// Label 1131: @50818
GIM_Try, /*On fail goto*//*Label 1132*/ 50877, // Rule ID 1021 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2602:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VHSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1021,
GIR_Done,
// Label 1132: @50877
GIM_Try, /*On fail goto*//*Label 1133*/ 50936, // Rule ID 1022 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2602:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VHSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1022,
GIR_Done,
// Label 1133: @50936
GIM_Try, /*On fail goto*//*Label 1134*/ 50995, // Rule ID 1023 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vhsubu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2602:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VHSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VHSUBuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1023,
GIR_Done,
// Label 1134: @50995
GIM_Try, /*On fail goto*//*Label 1135*/ 51054, // Rule ID 1040 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsubhn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2672:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VRSUBHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSUBHNv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1040,
GIR_Done,
// Label 1135: @51054
GIM_Try, /*On fail goto*//*Label 1136*/ 51113, // Rule ID 1041 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsubhn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2672:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VRSUBHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSUBHNv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1041,
GIR_Done,
// Label 1136: @51113
GIM_Try, /*On fail goto*//*Label 1137*/ 51172, // Rule ID 1042 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsubhn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2672:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VRSUBHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSUBHNv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1042,
GIR_Done,
// Label 1137: @51172
GIM_Try, /*On fail goto*//*Label 1138*/ 51231, // Rule ID 1135 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacge,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2577:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VACGEfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGEfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1135,
GIR_Done,
// Label 1138: @51231
GIM_Try, /*On fail goto*//*Label 1139*/ 51290, // Rule ID 1136 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacge,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2577:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VACGEfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGEfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1136,
GIR_Done,
// Label 1139: @51290
GIM_Try, /*On fail goto*//*Label 1140*/ 51349, // Rule ID 1137 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacge,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2577:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VACGEhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGEhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1137,
GIR_Done,
// Label 1140: @51349
GIM_Try, /*On fail goto*//*Label 1141*/ 51408, // Rule ID 1138 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacge,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2577:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VACGEhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGEhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1138,
GIR_Done,
// Label 1141: @51408
GIM_Try, /*On fail goto*//*Label 1142*/ 51467, // Rule ID 1139 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacgt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2578:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VACGTfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGTfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1139,
GIR_Done,
// Label 1142: @51467
GIM_Try, /*On fail goto*//*Label 1143*/ 51526, // Rule ID 1140 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacgt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2578:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VACGTfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGTfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1140,
GIR_Done,
// Label 1143: @51526
GIM_Try, /*On fail goto*//*Label 1144*/ 51585, // Rule ID 1141 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacgt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2578:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VACGThd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGThd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1141,
GIR_Done,
// Label 1144: @51585
GIM_Try, /*On fail goto*//*Label 1145*/ 51644, // Rule ID 1142 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vacgt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2578:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VACGThq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VACGThq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1142,
GIR_Done,
// Label 1145: @51644
GIM_Try, /*On fail goto*//*Label 1146*/ 51703, // Rule ID 1175 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2574:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VABDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1175,
GIR_Done,
// Label 1146: @51703
GIM_Try, /*On fail goto*//*Label 1147*/ 51762, // Rule ID 1176 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2574:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VABDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1176,
GIR_Done,
// Label 1147: @51762
GIM_Try, /*On fail goto*//*Label 1148*/ 51821, // Rule ID 1177 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2574:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VABDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1177,
GIR_Done,
// Label 1148: @51821
GIM_Try, /*On fail goto*//*Label 1149*/ 51880, // Rule ID 1178 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2574:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VABDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1178,
GIR_Done,
// Label 1149: @51880
GIM_Try, /*On fail goto*//*Label 1150*/ 51939, // Rule ID 1179 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2574:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VABDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1179,
GIR_Done,
// Label 1150: @51939
GIM_Try, /*On fail goto*//*Label 1151*/ 51998, // Rule ID 1180 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2574:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VABDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1180,
GIR_Done,
// Label 1151: @51998
GIM_Try, /*On fail goto*//*Label 1152*/ 52057, // Rule ID 1181 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2575:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VABDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1181,
GIR_Done,
// Label 1152: @52057
GIM_Try, /*On fail goto*//*Label 1153*/ 52116, // Rule ID 1182 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2575:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VABDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1182,
GIR_Done,
// Label 1153: @52116
GIM_Try, /*On fail goto*//*Label 1154*/ 52175, // Rule ID 1183 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2575:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VABDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1183,
GIR_Done,
// Label 1154: @52175
GIM_Try, /*On fail goto*//*Label 1155*/ 52234, // Rule ID 1184 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2575:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VABDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1184,
GIR_Done,
// Label 1155: @52234
GIM_Try, /*On fail goto*//*Label 1156*/ 52293, // Rule ID 1185 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2575:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VABDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1185,
GIR_Done,
// Label 1156: @52293
GIM_Try, /*On fail goto*//*Label 1157*/ 52352, // Rule ID 1186 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2575:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VABDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1186,
GIR_Done,
// Label 1157: @52352
GIM_Try, /*On fail goto*//*Label 1158*/ 52411, // Rule ID 1187 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2574:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VABDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1187,
GIR_Done,
// Label 1158: @52411
GIM_Try, /*On fail goto*//*Label 1159*/ 52470, // Rule ID 1188 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2574:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VABDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1188,
GIR_Done,
// Label 1159: @52470
GIM_Try, /*On fail goto*//*Label 1160*/ 52529, // Rule ID 1189 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2574:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VABDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1189,
GIR_Done,
// Label 1160: @52529
GIM_Try, /*On fail goto*//*Label 1161*/ 52588, // Rule ID 1190 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2574:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VABDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1190,
GIR_Done,
// Label 1161: @52588
GIM_Try, /*On fail goto*//*Label 1162*/ 52647, // Rule ID 1255 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2628:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPADDi8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDi8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1255,
GIR_Done,
// Label 1162: @52647
GIM_Try, /*On fail goto*//*Label 1163*/ 52706, // Rule ID 1256 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2628:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPADDi16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1256,
GIR_Done,
// Label 1163: @52706
GIM_Try, /*On fail goto*//*Label 1164*/ 52765, // Rule ID 1257 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2628:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPADDi32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDi32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1257,
GIR_Done,
// Label 1164: @52765
GIM_Try, /*On fail goto*//*Label 1165*/ 52824, // Rule ID 1258 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2628:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPADDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1258,
GIR_Done,
// Label 1165: @52824
GIM_Try, /*On fail goto*//*Label 1166*/ 52883, // Rule ID 1259 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2628:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPADDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADDh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1259,
GIR_Done,
// Label 1166: @52883
GIM_Try, /*On fail goto*//*Label 1167*/ 52942, // Rule ID 1272 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2626:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) => (VPADALsv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1272,
GIR_Done,
// Label 1167: @52942
GIM_Try, /*On fail goto*//*Label 1168*/ 53001, // Rule ID 1273 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2626:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) => (VPADALsv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1273,
GIR_Done,
// Label 1168: @53001
GIM_Try, /*On fail goto*//*Label 1169*/ 53060, // Rule ID 1274 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2626:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) => (VPADALsv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1274,
GIR_Done,
// Label 1169: @53060
GIM_Try, /*On fail goto*//*Label 1170*/ 53119, // Rule ID 1275 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2626:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) => (VPADALsv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1275,
GIR_Done,
// Label 1170: @53119
GIM_Try, /*On fail goto*//*Label 1171*/ 53178, // Rule ID 1276 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2626:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) => (VPADALsv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1276,
GIR_Done,
// Label 1171: @53178
GIM_Try, /*On fail goto*//*Label 1172*/ 53237, // Rule ID 1277 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadals,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2626:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) => (VPADALsv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1277,
GIR_Done,
// Label 1172: @53237
GIM_Try, /*On fail goto*//*Label 1173*/ 53296, // Rule ID 1278 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2627:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) => (VPADALuv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1278,
GIR_Done,
// Label 1173: @53296
GIM_Try, /*On fail goto*//*Label 1174*/ 53355, // Rule ID 1279 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2627:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) => (VPADALuv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1279,
GIR_Done,
// Label 1174: @53355
GIM_Try, /*On fail goto*//*Label 1175*/ 53414, // Rule ID 1280 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2627:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) => (VPADALuv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1280,
GIR_Done,
// Label 1175: @53414
GIM_Try, /*On fail goto*//*Label 1176*/ 53473, // Rule ID 1281 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2627:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) => (VPADALuv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1281,
GIR_Done,
// Label 1176: @53473
GIM_Try, /*On fail goto*//*Label 1177*/ 53532, // Rule ID 1282 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2627:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) => (VPADALuv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1282,
GIR_Done,
// Label 1177: @53532
GIM_Try, /*On fail goto*//*Label 1178*/ 53591, // Rule ID 1283 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpadalu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2627:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) => (VPADALuv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPADALuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1283,
GIR_Done,
// Label 1178: @53591
GIM_Try, /*On fail goto*//*Label 1179*/ 53650, // Rule ID 1284 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2631:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMAXs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1284,
GIR_Done,
// Label 1179: @53650
GIM_Try, /*On fail goto*//*Label 1180*/ 53709, // Rule ID 1285 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2631:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMAXs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1285,
GIR_Done,
// Label 1180: @53709
GIM_Try, /*On fail goto*//*Label 1181*/ 53768, // Rule ID 1286 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2631:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMAXs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1286,
GIR_Done,
// Label 1181: @53768
GIM_Try, /*On fail goto*//*Label 1182*/ 53827, // Rule ID 1287 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2632:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMAXu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1287,
GIR_Done,
// Label 1182: @53827
GIM_Try, /*On fail goto*//*Label 1183*/ 53886, // Rule ID 1288 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2632:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMAXu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1288,
GIR_Done,
// Label 1183: @53886
GIM_Try, /*On fail goto*//*Label 1184*/ 53945, // Rule ID 1289 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2632:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMAXu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1289,
GIR_Done,
// Label 1184: @53945
GIM_Try, /*On fail goto*//*Label 1185*/ 54004, // Rule ID 1290 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2631:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPMAXf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1290,
GIR_Done,
// Label 1185: @54004
GIM_Try, /*On fail goto*//*Label 1186*/ 54063, // Rule ID 1291 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmaxs,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2631:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPMAXh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMAXh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1291,
GIR_Done,
// Label 1186: @54063
GIM_Try, /*On fail goto*//*Label 1187*/ 54122, // Rule ID 1292 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2633:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMINs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1292,
GIR_Done,
// Label 1187: @54122
GIM_Try, /*On fail goto*//*Label 1188*/ 54181, // Rule ID 1293 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2633:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMINs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1293,
GIR_Done,
// Label 1188: @54181
GIM_Try, /*On fail goto*//*Label 1189*/ 54240, // Rule ID 1294 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2633:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMINs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1294,
GIR_Done,
// Label 1189: @54240
GIM_Try, /*On fail goto*//*Label 1190*/ 54299, // Rule ID 1295 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpminu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2634:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VPMINu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1295,
GIR_Done,
// Label 1190: @54299
GIM_Try, /*On fail goto*//*Label 1191*/ 54358, // Rule ID 1296 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpminu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2634:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VPMINu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1296,
GIR_Done,
// Label 1191: @54358
GIM_Try, /*On fail goto*//*Label 1192*/ 54417, // Rule ID 1297 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpminu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2634:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VPMINu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1297,
GIR_Done,
// Label 1192: @54417
GIM_Try, /*On fail goto*//*Label 1193*/ 54476, // Rule ID 1298 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2633:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VPMINf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINf,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1298,
GIR_Done,
// Label 1193: @54476
GIM_Try, /*On fail goto*//*Label 1194*/ 54535, // Rule ID 1299 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vpmins,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2633:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VPMINh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VPMINh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1299,
GIR_Done,
// Label 1194: @54535
GIM_Try, /*On fail goto*//*Label 1195*/ 54594, // Rule ID 1306 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecps,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2658:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VRECPSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPSfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1306,
GIR_Done,
// Label 1195: @54594
GIM_Try, /*On fail goto*//*Label 1196*/ 54653, // Rule ID 1307 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecps,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2658:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VRECPSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPSfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1307,
GIR_Done,
// Label 1196: @54653
GIM_Try, /*On fail goto*//*Label 1197*/ 54712, // Rule ID 1308 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecps,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2658:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VRECPShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPShd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1308,
GIR_Done,
// Label 1197: @54712
GIM_Try, /*On fail goto*//*Label 1198*/ 54771, // Rule ID 1309 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrecps,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2658:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VRECPShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRECPShq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1309,
GIR_Done,
// Label 1198: @54771
GIM_Try, /*On fail goto*//*Label 1199*/ 54830, // Rule ID 1316 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2671:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VRSQRTSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTSfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1316,
GIR_Done,
// Label 1199: @54830
GIM_Try, /*On fail goto*//*Label 1200*/ 54889, // Rule ID 1317 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2671:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VRSQRTSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTSfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1317,
GIR_Done,
// Label 1200: @54889
GIM_Try, /*On fail goto*//*Label 1201*/ 54948, // Rule ID 1318 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2671:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VRSQRTShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTShd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1318,
GIR_Done,
// Label 1201: @54948
GIM_Try, /*On fail goto*//*Label 1202*/ 55007, // Rule ID 1319 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrsqrts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2671:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VRSQRTShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSQRTShq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1319,
GIR_Done,
// Label 1202: @55007
GIM_Try, /*On fail goto*//*Label 1203*/ 55066, // Rule ID 1320 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2674:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1320,
GIR_Done,
// Label 1203: @55066
GIM_Try, /*On fail goto*//*Label 1204*/ 55125, // Rule ID 1321 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2674:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1321,
GIR_Done,
// Label 1204: @55125
GIM_Try, /*On fail goto*//*Label 1205*/ 55184, // Rule ID 1322 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2674:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1322,
GIR_Done,
// Label 1205: @55184
GIM_Try, /*On fail goto*//*Label 1206*/ 55243, // Rule ID 1323 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2674:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1323,
GIR_Done,
// Label 1206: @55243
GIM_Try, /*On fail goto*//*Label 1207*/ 55302, // Rule ID 1324 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2674:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1324,
GIR_Done,
// Label 1207: @55302
GIM_Try, /*On fail goto*//*Label 1208*/ 55361, // Rule ID 1325 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2674:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1325,
GIR_Done,
// Label 1208: @55361
GIM_Try, /*On fail goto*//*Label 1209*/ 55420, // Rule ID 1326 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2674:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1326,
GIR_Done,
// Label 1209: @55420
GIM_Try, /*On fail goto*//*Label 1210*/ 55479, // Rule ID 1327 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2674:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1327,
GIR_Done,
// Label 1210: @55479
GIM_Try, /*On fail goto*//*Label 1211*/ 55538, // Rule ID 1328 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2675:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1328,
GIR_Done,
// Label 1211: @55538
GIM_Try, /*On fail goto*//*Label 1212*/ 55597, // Rule ID 1329 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2675:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1329,
GIR_Done,
// Label 1212: @55597
GIM_Try, /*On fail goto*//*Label 1213*/ 55656, // Rule ID 1330 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2675:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1330,
GIR_Done,
// Label 1213: @55656
GIM_Try, /*On fail goto*//*Label 1214*/ 55715, // Rule ID 1331 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2675:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1331,
GIR_Done,
// Label 1214: @55715
GIM_Try, /*On fail goto*//*Label 1215*/ 55774, // Rule ID 1332 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2675:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1332,
GIR_Done,
// Label 1215: @55774
GIM_Try, /*On fail goto*//*Label 1216*/ 55833, // Rule ID 1333 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2675:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1333,
GIR_Done,
// Label 1216: @55833
GIM_Try, /*On fail goto*//*Label 1217*/ 55892, // Rule ID 1334 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2675:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1334,
GIR_Done,
// Label 1217: @55892
GIM_Try, /*On fail goto*//*Label 1218*/ 55951, // Rule ID 1335 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2675:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSHLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1335,
GIR_Done,
// Label 1218: @55951
GIM_Try, /*On fail goto*//*Label 1219*/ 56010, // Rule ID 1369 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2668:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1369,
GIR_Done,
// Label 1219: @56010
GIM_Try, /*On fail goto*//*Label 1220*/ 56069, // Rule ID 1370 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2668:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1370,
GIR_Done,
// Label 1220: @56069
GIM_Try, /*On fail goto*//*Label 1221*/ 56128, // Rule ID 1371 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2668:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1371,
GIR_Done,
// Label 1221: @56128
GIM_Try, /*On fail goto*//*Label 1222*/ 56187, // Rule ID 1372 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2668:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1372,
GIR_Done,
// Label 1222: @56187
GIM_Try, /*On fail goto*//*Label 1223*/ 56246, // Rule ID 1373 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2668:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1373,
GIR_Done,
// Label 1223: @56246
GIM_Try, /*On fail goto*//*Label 1224*/ 56305, // Rule ID 1374 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2668:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1374,
GIR_Done,
// Label 1224: @56305
GIM_Try, /*On fail goto*//*Label 1225*/ 56364, // Rule ID 1375 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2668:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1375,
GIR_Done,
// Label 1225: @56364
GIM_Try, /*On fail goto*//*Label 1226*/ 56423, // Rule ID 1376 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2668:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1376,
GIR_Done,
// Label 1226: @56423
GIM_Try, /*On fail goto*//*Label 1227*/ 56482, // Rule ID 1377 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2669:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1377,
GIR_Done,
// Label 1227: @56482
GIM_Try, /*On fail goto*//*Label 1228*/ 56541, // Rule ID 1378 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2669:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1378,
GIR_Done,
// Label 1228: @56541
GIM_Try, /*On fail goto*//*Label 1229*/ 56600, // Rule ID 1379 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2669:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1379,
GIR_Done,
// Label 1229: @56600
GIM_Try, /*On fail goto*//*Label 1230*/ 56659, // Rule ID 1380 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2669:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1380,
GIR_Done,
// Label 1230: @56659
GIM_Try, /*On fail goto*//*Label 1231*/ 56718, // Rule ID 1381 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2669:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1381,
GIR_Done,
// Label 1231: @56718
GIM_Try, /*On fail goto*//*Label 1232*/ 56777, // Rule ID 1382 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2669:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1382,
GIR_Done,
// Label 1232: @56777
GIM_Try, /*On fail goto*//*Label 1233*/ 56836, // Rule ID 1383 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2669:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1383,
GIR_Done,
// Label 1233: @56836
GIM_Try, /*On fail goto*//*Label 1234*/ 56895, // Rule ID 1384 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2669:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRSHLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1384,
GIR_Done,
// Label 1234: @56895
GIM_Try, /*On fail goto*//*Label 1235*/ 56954, // Rule ID 1404 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2653:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1404,
GIR_Done,
// Label 1235: @56954
GIM_Try, /*On fail goto*//*Label 1236*/ 57013, // Rule ID 1405 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2653:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1405,
GIR_Done,
// Label 1236: @57013
GIM_Try, /*On fail goto*//*Label 1237*/ 57072, // Rule ID 1406 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2653:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1406,
GIR_Done,
// Label 1237: @57072
GIM_Try, /*On fail goto*//*Label 1238*/ 57131, // Rule ID 1407 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2653:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1407,
GIR_Done,
// Label 1238: @57131
GIM_Try, /*On fail goto*//*Label 1239*/ 57190, // Rule ID 1408 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2653:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1408,
GIR_Done,
// Label 1239: @57190
GIM_Try, /*On fail goto*//*Label 1240*/ 57249, // Rule ID 1409 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2653:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1409,
GIR_Done,
// Label 1240: @57249
GIM_Try, /*On fail goto*//*Label 1241*/ 57308, // Rule ID 1410 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2653:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1410,
GIR_Done,
// Label 1241: @57308
GIM_Try, /*On fail goto*//*Label 1242*/ 57367, // Rule ID 1411 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2653:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1411,
GIR_Done,
// Label 1242: @57367
GIM_Try, /*On fail goto*//*Label 1243*/ 57426, // Rule ID 1412 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2655:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1412,
GIR_Done,
// Label 1243: @57426
GIM_Try, /*On fail goto*//*Label 1244*/ 57485, // Rule ID 1413 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2655:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1413,
GIR_Done,
// Label 1244: @57485
GIM_Try, /*On fail goto*//*Label 1245*/ 57544, // Rule ID 1414 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2655:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1414,
GIR_Done,
// Label 1245: @57544
GIM_Try, /*On fail goto*//*Label 1246*/ 57603, // Rule ID 1415 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2655:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1415,
GIR_Done,
// Label 1246: @57603
GIM_Try, /*On fail goto*//*Label 1247*/ 57662, // Rule ID 1416 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2655:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1416,
GIR_Done,
// Label 1247: @57662
GIM_Try, /*On fail goto*//*Label 1248*/ 57721, // Rule ID 1417 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2655:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1417,
GIR_Done,
// Label 1248: @57721
GIM_Try, /*On fail goto*//*Label 1249*/ 57780, // Rule ID 1418 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2655:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1418,
GIR_Done,
// Label 1249: @57780
GIM_Try, /*On fail goto*//*Label 1250*/ 57839, // Rule ID 1419 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2655:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSHLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1419,
GIR_Done,
// Label 1250: @57839
GIM_Try, /*On fail goto*//*Label 1251*/ 57898, // Rule ID 1453 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2648:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1453,
GIR_Done,
// Label 1251: @57898
GIM_Try, /*On fail goto*//*Label 1252*/ 57957, // Rule ID 1454 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2648:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1454,
GIR_Done,
// Label 1252: @57957
GIM_Try, /*On fail goto*//*Label 1253*/ 58016, // Rule ID 1455 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2648:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1455,
GIR_Done,
// Label 1253: @58016
GIM_Try, /*On fail goto*//*Label 1254*/ 58075, // Rule ID 1456 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2648:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1456,
GIR_Done,
// Label 1254: @58075
GIM_Try, /*On fail goto*//*Label 1255*/ 58134, // Rule ID 1457 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2648:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1457,
GIR_Done,
// Label 1255: @58134
GIM_Try, /*On fail goto*//*Label 1256*/ 58193, // Rule ID 1458 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2648:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1458,
GIR_Done,
// Label 1256: @58193
GIM_Try, /*On fail goto*//*Label 1257*/ 58252, // Rule ID 1459 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2648:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1459,
GIR_Done,
// Label 1257: @58252
GIM_Try, /*On fail goto*//*Label 1258*/ 58311, // Rule ID 1460 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshifts,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2648:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1460,
GIR_Done,
// Label 1258: @58311
GIM_Try, /*On fail goto*//*Label 1259*/ 58370, // Rule ID 1461 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2649:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) => (VQRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1461,
GIR_Done,
// Label 1259: @58370
GIM_Try, /*On fail goto*//*Label 1260*/ 58429, // Rule ID 1462 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2649:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) => (VQRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1462,
GIR_Done,
// Label 1260: @58429
GIM_Try, /*On fail goto*//*Label 1261*/ 58488, // Rule ID 1463 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2649:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) => (VQRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1463,
GIR_Done,
// Label 1261: @58488
GIM_Try, /*On fail goto*//*Label 1262*/ 58547, // Rule ID 1464 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2649:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) => (VQRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1464,
GIR_Done,
// Label 1262: @58547
GIM_Try, /*On fail goto*//*Label 1263*/ 58606, // Rule ID 1465 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2649:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) => (VQRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1465,
GIR_Done,
// Label 1263: @58606
GIM_Try, /*On fail goto*//*Label 1264*/ 58665, // Rule ID 1466 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2649:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) => (VQRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1466,
GIR_Done,
// Label 1264: @58665
GIM_Try, /*On fail goto*//*Label 1265*/ 58724, // Rule ID 1467 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2649:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) => (VQRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1467,
GIR_Done,
// Label 1265: @58724
GIM_Try, /*On fail goto*//*Label 1266*/ 58783, // Rule ID 1468 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrshiftu,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2649:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) => (VQRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRSHLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1468,
GIR_Done,
// Label 1266: @58783
GIM_Try, /*On fail goto*//*Label 1267*/ 58835, // Rule ID 1733 //
GIM_CheckFeatures, GIFBS_HasAES_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_aesd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2550:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) => (AESD:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::AESD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1733,
GIR_Done,
// Label 1267: @58835
GIM_Try, /*On fail goto*//*Label 1268*/ 58887, // Rule ID 1734 //
GIM_CheckFeatures, GIFBS_HasAES_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_aese,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2551:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) => (AESE:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::AESE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1734,
GIR_Done,
// Label 1268: @58887
GIM_Try, /*On fail goto*//*Label 1269*/ 58939, // Rule ID 1737 //
GIM_CheckFeatures, GIFBS_HasSHA2_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha1su1,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2564:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) => (SHA1SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA1SU1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1737,
GIR_Done,
// Label 1269: @58939
GIM_Try, /*On fail goto*//*Label 1270*/ 58991, // Rule ID 1738 //
GIM_CheckFeatures, GIFBS_HasSHA2_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha256su0,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2567:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) => (SHA256SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA256SU0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1738,
GIR_Done,
// Label 1270: @58991
GIM_Try, /*On fail goto*//*Label 1271*/ 59050, // Rule ID 1752 //
GIM_CheckFeatures, GIFBS_HasMVEInt_HasV8_1MMainline,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_sqrshr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2412:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm) => (MVE_SQRSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_SQRSHR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1752,
GIR_Done,
// Label 1271: @59050
GIM_Try, /*On fail goto*//*Label 1272*/ 59109, // Rule ID 1753 //
GIM_CheckFeatures, GIFBS_HasMVEInt_HasV8_1MMainline,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_uqrshl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2419:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm) => (MVE_UQRSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_UQRSHL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1753,
GIR_Done,
// Label 1272: @59109
GIM_Try, /*On fail goto*//*Label 1273*/ 59171, // Rule ID 1876 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sxtab16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2751:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) => (SXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SXTAB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1876,
GIR_Done,
// Label 1273: @59171
GIM_Try, /*On fail goto*//*Label 1274*/ 59233, // Rule ID 1883 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uxtab16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2776:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) => (UXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UXTAB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // LHS
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // RHS
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1883,
GIR_Done,
// Label 1274: @59233
GIM_Try, /*On fail goto*//*Label 1275*/ 59292, // Rule ID 1934 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smuad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2727:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMUAD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1934,
GIR_Done,
// Label 1275: @59292
GIM_Try, /*On fail goto*//*Label 1276*/ 59351, // Rule ID 1935 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smuadx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2728:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMUADX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1935,
GIR_Done,
// Label 1276: @59351
GIM_Try, /*On fail goto*//*Label 1277*/ 59410, // Rule ID 1936 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smusd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2735:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMUSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1936,
GIR_Done,
// Label 1277: @59410
GIM_Try, /*On fail goto*//*Label 1278*/ 59469, // Rule ID 1937 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smusdx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2736:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SMUSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMUSDX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1937,
GIR_Done,
// Label 1278: @59469
GIM_Try, /*On fail goto*//*Label 1279*/ 59528, // Rule ID 1999 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulbb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2729:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULBB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1999,
GIR_Done,
// Label 1279: @59528
GIM_Try, /*On fail goto*//*Label 1280*/ 59587, // Rule ID 2000 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulbt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2730:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULBT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2000,
GIR_Done,
// Label 1280: @59587
GIM_Try, /*On fail goto*//*Label 1281*/ 59646, // Rule ID 2001 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smultb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2731:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULTB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2001,
GIR_Done,
// Label 1281: @59646
GIM_Try, /*On fail goto*//*Label 1282*/ 59705, // Rule ID 2002 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smultt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2732:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULTT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2002,
GIR_Done,
// Label 1282: @59705
GIM_Try, /*On fail goto*//*Label 1283*/ 59764, // Rule ID 2003 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulwb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2733:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULWB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2003,
GIR_Done,
// Label 1283: @59764
GIM_Try, /*On fail goto*//*Label 1284*/ 59823, // Rule ID 2004 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulwt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2734:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (SMULWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMULWT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2004,
GIR_Done,
// Label 1284: @59823
GIM_Try, /*On fail goto*//*Label 1285*/ 59885, // Rule ID 2108 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sxtab16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2751:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SXTAB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2108,
GIR_Done,
// Label 1285: @59885
GIM_Try, /*On fail goto*//*Label 1286*/ 59944, // Rule ID 2141 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2694:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2141,
GIR_Done,
// Label 1286: @59944
GIM_Try, /*On fail goto*//*Label 1287*/ 60003, // Rule ID 2142 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_qsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2699:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSUB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2142,
GIR_Done,
// Label 1287: @60003
GIM_Try, /*On fail goto*//*Label 1288*/ 60062, // Rule ID 2182 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulbb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2729:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULBB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2182,
GIR_Done,
// Label 1288: @60062
GIM_Try, /*On fail goto*//*Label 1289*/ 60121, // Rule ID 2183 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulbt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2730:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULBT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2183,
GIR_Done,
// Label 1289: @60121
GIM_Try, /*On fail goto*//*Label 1290*/ 60180, // Rule ID 2184 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smultb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2731:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULTB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2184,
GIR_Done,
// Label 1290: @60180
GIM_Try, /*On fail goto*//*Label 1291*/ 60239, // Rule ID 2185 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smultt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2732:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULTT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2185,
GIR_Done,
// Label 1291: @60239
GIM_Try, /*On fail goto*//*Label 1292*/ 60298, // Rule ID 2186 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulwb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2733:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULWB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULWB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2186,
GIR_Done,
// Label 1292: @60298
GIM_Try, /*On fail goto*//*Label 1293*/ 60357, // Rule ID 2187 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smulwt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2734:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMULWT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMULWT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2187,
GIR_Done,
// Label 1293: @60357
GIM_Try, /*On fail goto*//*Label 1294*/ 60412, // Rule ID 2507 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8_3a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcadd_rot90,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2581:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm) => (VCADDv4f16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCADDv4f16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2507,
GIR_Done,
// Label 1294: @60412
GIM_Try, /*On fail goto*//*Label 1295*/ 60467, // Rule ID 2508 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8_3a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcadd_rot270,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f16] } 2580:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm) => (VCADDv4f16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCADDv4f16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2508,
GIR_Done,
// Label 1295: @60467
GIM_Try, /*On fail goto*//*Label 1296*/ 60522, // Rule ID 2509 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8_3a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcadd_rot90,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2581:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm) => (VCADDv8f16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCADDv8f16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2509,
GIR_Done,
// Label 1296: @60522
GIM_Try, /*On fail goto*//*Label 1297*/ 60577, // Rule ID 2510 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8_3a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcadd_rot270,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2580:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm) => (VCADDv8f16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCADDv8f16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2510,
GIR_Done,
// Label 1297: @60577
GIM_Try, /*On fail goto*//*Label 1298*/ 60632, // Rule ID 2511 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_3a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcadd_rot90,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2581:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm) => (VCADDv2f32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCADDv2f32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2511,
GIR_Done,
// Label 1298: @60632
GIM_Try, /*On fail goto*//*Label 1299*/ 60687, // Rule ID 2512 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_3a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcadd_rot270,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2580:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm) => (VCADDv2f32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCADDv2f32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2512,
GIR_Done,
// Label 1299: @60687
GIM_Try, /*On fail goto*//*Label 1300*/ 60742, // Rule ID 2513 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_3a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcadd_rot90,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2581:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm) => (VCADDv4f32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm, 0:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCADDv4f32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2513,
GIR_Done,
// Label 1300: @60742
GIM_Try, /*On fail goto*//*Label 1301*/ 60797, // Rule ID 2514 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_3a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vcadd_rot270,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2580:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm) => (VCADDv4f32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCADDv4f32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2514,
GIR_Done,
// Label 1301: @60797
GIM_Try, /*On fail goto*//*Label 1302*/ 60894, // Rule ID 3199 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minnmv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2388:{ *:[iPTR] }, SPR:{ *:[f32] }:$prev, MQPR:{ *:[v4f32] }:$vec) => (COPY_TO_REGCLASS:{ *:[f32] } (MVE_VMINNMVf32:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v4f32] }:$vec), SPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::MVE_VMINNMVf32,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
// GIR_Coverage, 3199,
GIR_Done,
// Label 1302: @60894
GIM_Try, /*On fail goto*//*Label 1303*/ 60991, // Rule ID 3201 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minnmv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[f16] } 2388:{ *:[iPTR] }, HPR:{ *:[f16] }:$prev, MQPR:{ *:[v8f16] }:$vec) => (COPY_TO_REGCLASS:{ *:[f16] } (MVE_VMINNMVf16:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v8f16] }:$vec), HPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::MVE_VMINNMVf16,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::HPRRegClassID,
// GIR_Coverage, 3201,
GIR_Done,
// Label 1303: @60991
GIM_Try, /*On fail goto*//*Label 1304*/ 61088, // Rule ID 3203 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxnmv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2379:{ *:[iPTR] }, SPR:{ *:[f32] }:$prev, MQPR:{ *:[v4f32] }:$vec) => (COPY_TO_REGCLASS:{ *:[f32] } (MVE_VMAXNMVf32:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v4f32] }:$vec), SPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::MVE_VMAXNMVf32,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
// GIR_Coverage, 3203,
GIR_Done,
// Label 1304: @61088
GIM_Try, /*On fail goto*//*Label 1305*/ 61185, // Rule ID 3205 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxnmv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[f16] } 2379:{ *:[iPTR] }, HPR:{ *:[f16] }:$prev, MQPR:{ *:[v8f16] }:$vec) => (COPY_TO_REGCLASS:{ *:[f16] } (MVE_VMAXNMVf16:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v8f16] }:$vec), HPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::MVE_VMAXNMVf16,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::HPRRegClassID,
// GIR_Coverage, 3205,
GIR_Done,
// Label 1305: @61185
GIM_Try, /*On fail goto*//*Label 1306*/ 61282, // Rule ID 3207 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minnmav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2386:{ *:[iPTR] }, SPR:{ *:[f32] }:$prev, MQPR:{ *:[v4f32] }:$vec) => (COPY_TO_REGCLASS:{ *:[f32] } (MVE_VMINNMAVf32:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v4f32] }:$vec), SPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::MVE_VMINNMAVf32,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
// GIR_Coverage, 3207,
GIR_Done,
// Label 1306: @61282
GIM_Try, /*On fail goto*//*Label 1307*/ 61379, // Rule ID 3209 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minnmav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[f16] } 2386:{ *:[iPTR] }, HPR:{ *:[f16] }:$prev, MQPR:{ *:[v8f16] }:$vec) => (COPY_TO_REGCLASS:{ *:[f16] } (MVE_VMINNMAVf16:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v8f16] }:$vec), HPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::MVE_VMINNMAVf16,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::HPRRegClassID,
// GIR_Coverage, 3209,
GIR_Done,
// Label 1307: @61379
GIM_Try, /*On fail goto*//*Label 1308*/ 61476, // Rule ID 3211 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxnmav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[f32] } 2377:{ *:[iPTR] }, SPR:{ *:[f32] }:$prev, MQPR:{ *:[v4f32] }:$vec) => (COPY_TO_REGCLASS:{ *:[f32] } (MVE_VMAXNMAVf32:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v4f32] }:$vec), SPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::MVE_VMAXNMAVf32,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
// GIR_Coverage, 3211,
GIR_Done,
// Label 1308: @61476
GIM_Try, /*On fail goto*//*Label 1309*/ 61573, // Rule ID 3213 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxnmav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[f16] } 2377:{ *:[iPTR] }, HPR:{ *:[f16] }:$prev, MQPR:{ *:[v8f16] }:$vec) => (COPY_TO_REGCLASS:{ *:[f16] } (MVE_VMAXNMAVf16:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$prev, rGPR:{ *:[i32] }), MQPR:{ *:[v8f16] }:$vec), HPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::MVE_VMAXNMAVf16,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::HPRRegClassID,
// GIR_Coverage, 3213,
GIR_Done,
// Label 1309: @61573
GIM_Try, /*On fail goto*//*Label 1310*/ 61636, // Rule ID 3263 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2384:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec) => (MVE_VMINAVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAVs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3263,
GIR_Done,
// Label 1310: @61636
GIM_Try, /*On fail goto*//*Label 1311*/ 61699, // Rule ID 3265 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2384:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec) => (MVE_VMINAVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAVs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3265,
GIR_Done,
// Label 1311: @61699
GIM_Try, /*On fail goto*//*Label 1312*/ 61762, // Rule ID 3267 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2384:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec) => (MVE_VMINAVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAVs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3267,
GIR_Done,
// Label 1312: @61762
GIM_Try, /*On fail goto*//*Label 1313*/ 61825, // Rule ID 3269 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2375:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec) => (MVE_VMAXAVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAVs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3269,
GIR_Done,
// Label 1313: @61825
GIM_Try, /*On fail goto*//*Label 1314*/ 61888, // Rule ID 3271 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2375:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec) => (MVE_VMAXAVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAVs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3271,
GIR_Done,
// Label 1314: @61888
GIM_Try, /*On fail goto*//*Label 1315*/ 61951, // Rule ID 3273 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2375:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec) => (MVE_VMAXAVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAVs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3273,
GIR_Done,
// Label 1315: @61951
GIM_Try, /*On fail goto*//*Label 1316*/ 62028, // Rule ID 3564 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2497:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQDMULHi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMULHi8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3564,
GIR_Done,
// Label 1316: @62028
GIM_Try, /*On fail goto*//*Label 1317*/ 62105, // Rule ID 3571 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2497:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQDMULHi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMULHi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3571,
GIR_Done,
// Label 1317: @62105
GIM_Try, /*On fail goto*//*Label 1318*/ 62182, // Rule ID 3575 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2497:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQDMULHi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMULHi32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3575,
GIR_Done,
// Label 1318: @62182
GIM_Try, /*On fail goto*//*Label 1319*/ 62259, // Rule ID 3577 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2506:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQRDMULHi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMULHi8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3577,
GIR_Done,
// Label 1319: @62259
GIM_Try, /*On fail goto*//*Label 1320*/ 62336, // Rule ID 3579 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2506:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQRDMULHi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMULHi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3579,
GIR_Done,
// Label 1320: @62336
GIM_Try, /*On fail goto*//*Label 1321*/ 62413, // Rule ID 3581 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2506:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQRDMULHi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMULHi32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3581,
GIR_Done,
// Label 1321: @62413
GIM_Try, /*On fail goto*//*Label 1322*/ 62490, // Rule ID 4853 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vbrsr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2430:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, rGPR:{ *:[i32] }:$Rm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VBRSR8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4853,
GIR_Done,
// Label 1322: @62490
GIM_Try, /*On fail goto*//*Label 1323*/ 62567, // Rule ID 4858 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vbrsr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2430:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, rGPR:{ *:[i32] }:$Rm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VBRSR16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4858,
GIR_Done,
// Label 1323: @62567
GIM_Try, /*On fail goto*//*Label 1324*/ 62644, // Rule ID 4860 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vbrsr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2430:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, rGPR:{ *:[i32] }:$Rm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VBRSR32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4860,
GIR_Done,
// Label 1324: @62644
GIM_Try, /*On fail goto*//*Label 1325*/ 62721, // Rule ID 4862 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vbrsr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8f16] } 2430:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, rGPR:{ *:[i32] }:$Rm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VBRSR16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4862,
GIR_Done,
// Label 1325: @62721
GIM_Try, /*On fail goto*//*Label 1326*/ 62798, // Rule ID 4864 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vbrsr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2430:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qn, rGPR:{ *:[i32] }:$Rm) => (MVE_VBRSR32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, rGPR:{ *:[i32] }:$Rm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VBRSR32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4864,
GIR_Done,
// Label 1326: @62798
GIM_Reject,
// Label 959: @62799
GIM_Try, /*On fail goto*//*Label 1327*/ 75418,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/5,
GIM_Try, /*On fail goto*//*Label 1328*/ 62894, // Rule ID 4016 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshl_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_7,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2507:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 0:{ *:[i32] }) => (MVE_VQSHLimms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLimms8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4016,
GIR_Done,
// Label 1328: @62894
GIM_Try, /*On fail goto*//*Label 1329*/ 62984, // Rule ID 4018 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshl_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_7,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2507:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }) => (MVE_VQSHLimmu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLimmu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4018,
GIR_Done,
// Label 1329: @62984
GIM_Try, /*On fail goto*//*Label 1330*/ 63074, // Rule ID 4020 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshl_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2507:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 0:{ *:[i32] }) => (MVE_VQSHLimms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLimms16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4020,
GIR_Done,
// Label 1330: @63074
GIM_Try, /*On fail goto*//*Label 1331*/ 63164, // Rule ID 4022 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshl_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2507:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }) => (MVE_VQSHLimmu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLimmu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4022,
GIR_Done,
// Label 1331: @63164
GIM_Try, /*On fail goto*//*Label 1332*/ 63254, // Rule ID 4024 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshl_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2507:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 0:{ *:[i32] }) => (MVE_VQSHLimms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLimms32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4024,
GIR_Done,
// Label 1332: @63254
GIM_Try, /*On fail goto*//*Label 1333*/ 63344, // Rule ID 4026 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqshl_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2507:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }) => (MVE_VQSHLimmu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHLimmu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4026,
GIR_Done,
// Label 1333: @63344
GIM_Try, /*On fail goto*//*Label 1334*/ 63434, // Rule ID 4034 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrshr_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2524:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }) => (MVE_VRSHR_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHR_imms8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4034,
GIR_Done,
// Label 1334: @63434
GIM_Try, /*On fail goto*//*Label 1335*/ 63524, // Rule ID 4036 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrshr_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2524:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }) => (MVE_VRSHR_immu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHR_immu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4036,
GIR_Done,
// Label 1335: @63524
GIM_Try, /*On fail goto*//*Label 1336*/ 63614, // Rule ID 4038 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrshr_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2524:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }) => (MVE_VRSHR_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHR_imms16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4038,
GIR_Done,
// Label 1336: @63614
GIM_Try, /*On fail goto*//*Label 1337*/ 63704, // Rule ID 4040 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrshr_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2524:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }) => (MVE_VRSHR_immu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHR_immu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4040,
GIR_Done,
// Label 1337: @63704
GIM_Try, /*On fail goto*//*Label 1338*/ 63794, // Rule ID 4042 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrshr_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm32,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2524:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 0:{ *:[i32] }) => (MVE_VRSHR_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHR_imms32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4042,
GIR_Done,
// Label 1338: @63794
GIM_Try, /*On fail goto*//*Label 1339*/ 63884, // Rule ID 4044 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrshr_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm32,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2524:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 1:{ *:[i32] }) => (MVE_VRSHR_immu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHR_immu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4044,
GIR_Done,
// Label 1339: @63884
GIM_Try, /*On fail goto*//*Label 1340*/ 63973, // Rule ID 4140 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_fix,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8f16] } 2443:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTf16s16_fix:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$scale)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf16s16_fix,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4140,
GIR_Done,
// Label 1340: @63973
GIM_Try, /*On fail goto*//*Label 1341*/ 64062, // Rule ID 4142 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_fix,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2443:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTs16f16_fix:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$scale)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs16f16_fix,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4142,
GIR_Done,
// Label 1341: @64062
GIM_Try, /*On fail goto*//*Label 1342*/ 64151, // Rule ID 4144 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_fix,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8f16] } 2443:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTf16u16_fix:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$scale)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf16u16_fix,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4144,
GIR_Done,
// Label 1342: @64151
GIM_Try, /*On fail goto*//*Label 1343*/ 64240, // Rule ID 4146 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_fix,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2443:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTu16f16_fix:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$scale)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu16f16_fix,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4146,
GIR_Done,
// Label 1343: @64240
GIM_Try, /*On fail goto*//*Label 1344*/ 64329, // Rule ID 4148 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_fix,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f32] } 2443:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTf32s32_fix:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$scale)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf32s32_fix,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4148,
GIR_Done,
// Label 1344: @64329
GIM_Try, /*On fail goto*//*Label 1345*/ 64418, // Rule ID 4150 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_fix,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2443:{ *:[iPTR] }, 0:{ *:[i32] }, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTs32f32_fix:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$scale)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs32f32_fix,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4150,
GIR_Done,
// Label 1345: @64418
GIM_Try, /*On fail goto*//*Label 1346*/ 64507, // Rule ID 4152 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_fix,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f32] } 2443:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTf32u32_fix:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$scale)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf32u32_fix,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4152,
GIR_Done,
// Label 1346: @64507
GIM_Try, /*On fail goto*//*Label 1347*/ 64596, // Rule ID 4154 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_fix,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2443:{ *:[iPTR] }, 1:{ *:[i32] }, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$scale) => (MVE_VCVTu32f32_fix:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$scale)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu32f32_fix,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // scale
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4154,
GIR_Done,
// Label 1347: @64596
GIM_Try, /*On fail goto*//*Label 1348*/ 64667, // Rule ID 3215 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[i32] } 2390:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec, 0:{ *:[i32] }) => (MVE_VMINVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINVs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3215,
GIR_Done,
// Label 1348: @64667
GIM_Try, /*On fail goto*//*Label 1349*/ 64738, // Rule ID 3217 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[i32] } 2390:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec, 0:{ *:[i32] }) => (MVE_VMINVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINVs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3217,
GIR_Done,
// Label 1349: @64738
GIM_Try, /*On fail goto*//*Label 1350*/ 64809, // Rule ID 3219 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[i32] } 2390:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec, 0:{ *:[i32] }) => (MVE_VMINVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINVs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3219,
GIR_Done,
// Label 1350: @64809
GIM_Try, /*On fail goto*//*Label 1351*/ 64880, // Rule ID 3221 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[i32] } 2390:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec, 1:{ *:[i32] }) => (MVE_VMINVu8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINVu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3221,
GIR_Done,
// Label 1351: @64880
GIM_Try, /*On fail goto*//*Label 1352*/ 64951, // Rule ID 3223 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[i32] } 2390:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec, 1:{ *:[i32] }) => (MVE_VMINVu16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINVu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3223,
GIR_Done,
// Label 1352: @64951
GIM_Try, /*On fail goto*//*Label 1353*/ 65022, // Rule ID 3225 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_minv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[i32] } 2390:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec, 1:{ *:[i32] }) => (MVE_VMINVu32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINVu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3225,
GIR_Done,
// Label 1353: @65022
GIM_Try, /*On fail goto*//*Label 1354*/ 65093, // Rule ID 3227 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[i32] } 2381:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec, 0:{ *:[i32] }) => (MVE_VMAXVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXVs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3227,
GIR_Done,
// Label 1354: @65093
GIM_Try, /*On fail goto*//*Label 1355*/ 65164, // Rule ID 3229 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[i32] } 2381:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec, 0:{ *:[i32] }) => (MVE_VMAXVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXVs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3229,
GIR_Done,
// Label 1355: @65164
GIM_Try, /*On fail goto*//*Label 1356*/ 65235, // Rule ID 3231 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[i32] } 2381:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec, 0:{ *:[i32] }) => (MVE_VMAXVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXVs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3231,
GIR_Done,
// Label 1356: @65235
GIM_Try, /*On fail goto*//*Label 1357*/ 65306, // Rule ID 3233 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[i32] } 2381:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec, 1:{ *:[i32] }) => (MVE_VMAXVu8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXVu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3233,
GIR_Done,
// Label 1357: @65306
GIM_Try, /*On fail goto*//*Label 1358*/ 65377, // Rule ID 3235 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[i32] } 2381:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec, 1:{ *:[i32] }) => (MVE_VMAXVu16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXVu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3235,
GIR_Done,
// Label 1358: @65377
GIM_Try, /*On fail goto*//*Label 1359*/ 65448, // Rule ID 3237 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_maxv,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[i32] } 2381:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec, 1:{ *:[i32] }) => (MVE_VMAXVu32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXVu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // prev
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // vec
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3237,
GIR_Done,
// Label 1359: @65448
GIM_Try, /*On fail goto*//*Label 1360*/ 65533, // Rule ID 3642 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2427:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3642,
GIR_Done,
// Label 1360: @65533
GIM_Try, /*On fail goto*//*Label 1361*/ 65618, // Rule ID 3649 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2427:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3649,
GIR_Done,
// Label 1361: @65618
GIM_Try, /*On fail goto*//*Label 1362*/ 65703, // Rule ID 3653 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2427:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3653,
GIR_Done,
// Label 1362: @65703
GIM_Try, /*On fail goto*//*Label 1363*/ 65788, // Rule ID 3657 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2427:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VABDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3657,
GIR_Done,
// Label 1363: @65788
GIM_Try, /*On fail goto*//*Label 1364*/ 65873, // Rule ID 3661 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2427:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VABDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3661,
GIR_Done,
// Label 1364: @65873
GIM_Try, /*On fail goto*//*Label 1365*/ 65958, // Rule ID 3665 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2427:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VABDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3665,
GIR_Done,
// Label 1365: @65958
GIM_Try, /*On fail goto*//*Label 1366*/ 66043, // Rule ID 3666 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2513:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VRHADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRHADDs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3666,
GIR_Done,
// Label 1366: @66043
GIM_Try, /*On fail goto*//*Label 1367*/ 66128, // Rule ID 3673 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2513:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VRHADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRHADDs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3673,
GIR_Done,
// Label 1367: @66128
GIM_Try, /*On fail goto*//*Label 1368*/ 66213, // Rule ID 3677 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2513:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VRHADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRHADDs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3677,
GIR_Done,
// Label 1368: @66213
GIM_Try, /*On fail goto*//*Label 1369*/ 66298, // Rule ID 3681 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2513:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VRHADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRHADDu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3681,
GIR_Done,
// Label 1369: @66298
GIM_Try, /*On fail goto*//*Label 1370*/ 66383, // Rule ID 3685 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2513:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VRHADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRHADDu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3685,
GIR_Done,
// Label 1370: @66383
GIM_Try, /*On fail goto*//*Label 1371*/ 66468, // Rule ID 3689 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2513:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VRHADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRHADDu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3689,
GIR_Done,
// Label 1371: @66468
GIM_Try, /*On fail goto*//*Label 1372*/ 66553, // Rule ID 3702 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2462:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VHADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHADDs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3702,
GIR_Done,
// Label 1372: @66553
GIM_Try, /*On fail goto*//*Label 1373*/ 66638, // Rule ID 3710 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2462:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VHADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHADDs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3710,
GIR_Done,
// Label 1373: @66638
GIM_Try, /*On fail goto*//*Label 1374*/ 66723, // Rule ID 3715 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2462:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VHADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHADDs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3715,
GIR_Done,
// Label 1374: @66723
GIM_Try, /*On fail goto*//*Label 1375*/ 66808, // Rule ID 3720 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2462:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VHADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHADDu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3720,
GIR_Done,
// Label 1375: @66808
GIM_Try, /*On fail goto*//*Label 1376*/ 66893, // Rule ID 3725 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2462:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VHADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHADDu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3725,
GIR_Done,
// Label 1376: @66893
GIM_Try, /*On fail goto*//*Label 1377*/ 66978, // Rule ID 3730 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhadd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2462:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VHADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHADDu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3730,
GIR_Done,
// Label 1377: @66978
GIM_Try, /*On fail goto*//*Label 1378*/ 67063, // Rule ID 3732 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2463:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VHSUBs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHSUBs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3732,
GIR_Done,
// Label 1378: @67063
GIM_Try, /*On fail goto*//*Label 1379*/ 67148, // Rule ID 3735 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2463:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VHSUBs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHSUBs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3735,
GIR_Done,
// Label 1379: @67148
GIM_Try, /*On fail goto*//*Label 1380*/ 67233, // Rule ID 3738 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2463:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VHSUBs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHSUBs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3738,
GIR_Done,
// Label 1380: @67233
GIM_Try, /*On fail goto*//*Label 1381*/ 67318, // Rule ID 3741 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2463:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VHSUBu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHSUBu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3741,
GIR_Done,
// Label 1381: @67318
GIM_Try, /*On fail goto*//*Label 1382*/ 67403, // Rule ID 3744 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2463:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VHSUBu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHSUBu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3744,
GIR_Done,
// Label 1382: @67403
GIM_Try, /*On fail goto*//*Label 1383*/ 67488, // Rule ID 3747 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vhsub,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2463:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VHSUBu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHSUBu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3747,
GIR_Done,
// Label 1383: @67488
GIM_Try, /*On fail goto*//*Label 1384*/ 67573, // Rule ID 4134 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4f32] } 2427:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4134,
GIR_Done,
// Label 1384: @67573
GIM_Try, /*On fail goto*//*Label 1385*/ 67658, // Rule ID 4136 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8f16] } 2427:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, 0:{ *:[i32] }) => (MVE_VABDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4136,
GIR_Done,
// Label 1385: @67658
GIM_Try, /*On fail goto*//*Label 1386*/ 67743, // Rule ID 4509 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull_poly,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2490:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULLBp8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLBp8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4509,
GIR_Done,
// Label 1386: @67743
GIM_Try, /*On fail goto*//*Label 1387*/ 67828, // Rule ID 4511 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull_poly,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2490:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULLTp8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLTp8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4511,
GIR_Done,
// Label 1387: @67828
GIM_Try, /*On fail goto*//*Label 1388*/ 67913, // Rule ID 4513 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull_poly,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2490:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULLBp16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLBp16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4513,
GIR_Done,
// Label 1388: @67913
GIM_Try, /*On fail goto*//*Label 1389*/ 67998, // Rule ID 4515 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull_poly,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2490:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULLTp16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLTp16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4515,
GIR_Done,
// Label 1389: @67998
GIM_Try, /*On fail goto*//*Label 1390*/ 68083, // Rule ID 4542 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2488:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4542,
GIR_Done,
// Label 1390: @68083
GIM_Try, /*On fail goto*//*Label 1391*/ 68168, // Rule ID 4549 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2488:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4549,
GIR_Done,
// Label 1391: @68168
GIM_Try, /*On fail goto*//*Label 1392*/ 68253, // Rule ID 4553 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2488:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4553,
GIR_Done,
// Label 1392: @68253
GIM_Try, /*On fail goto*//*Label 1393*/ 68338, // Rule ID 4557 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2488:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4557,
GIR_Done,
// Label 1393: @68338
GIM_Try, /*On fail goto*//*Label 1394*/ 68423, // Rule ID 4561 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2488:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4561,
GIR_Done,
// Label 1394: @68423
GIM_Try, /*On fail goto*//*Label 1395*/ 68508, // Rule ID 4565 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2488:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4565,
GIR_Done,
// Label 1395: @68508
GIM_Try, /*On fail goto*//*Label 1396*/ 68593, // Rule ID 4566 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2523:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) => (MVE_VRMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRMULHs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4566,
GIR_Done,
// Label 1396: @68593
GIM_Try, /*On fail goto*//*Label 1397*/ 68678, // Rule ID 4568 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2523:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VRMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRMULHs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4568,
GIR_Done,
// Label 1397: @68678
GIM_Try, /*On fail goto*//*Label 1398*/ 68763, // Rule ID 4570 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2523:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VRMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRMULHs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4570,
GIR_Done,
// Label 1398: @68763
GIM_Try, /*On fail goto*//*Label 1399*/ 68848, // Rule ID 4572 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2523:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) => (MVE_VRMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRMULHu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4572,
GIR_Done,
// Label 1399: @68848
GIM_Try, /*On fail goto*//*Label 1400*/ 68933, // Rule ID 4574 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2523:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VRMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRMULHu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4574,
GIR_Done,
// Label 1400: @68933
GIM_Try, /*On fail goto*//*Label 1401*/ 69018, // Rule ID 4576 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vrmulh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2523:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VRMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRMULHu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4576,
GIR_Done,
// Label 1401: @69018
GIM_Try, /*On fail goto*//*Label 1402*/ 69089, // Rule ID 4627 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_narrow,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v8f16] } 2446:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 0:{ *:[i32] }) => (MVE_VCVTf16f32bh:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf16f32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4627,
GIR_Done,
// Label 1402: @69089
GIM_Try, /*On fail goto*//*Label 1403*/ 69160, // Rule ID 4633 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcvt_narrow,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v8f16] } 2446:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 1:{ *:[i32] }) => (MVE_VCVTf16f32th:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf16f32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4633,
GIR_Done,
// Label 1403: @69160
GIM_Try, /*On fail goto*//*Label 1404*/ 69245, // Rule ID 4651 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2498:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) => (MVE_VQDMULLs16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMULLs16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4651,
GIR_Done,
// Label 1404: @69245
GIM_Try, /*On fail goto*//*Label 1405*/ 69330, // Rule ID 4653 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2498:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) => (MVE_VQDMULLs16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMULLs16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4653,
GIR_Done,
// Label 1405: @69330
GIM_Try, /*On fail goto*//*Label 1406*/ 69415, // Rule ID 4655 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
// (intrinsic_wo_chain:{ *:[v2i64] } 2498:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) => (MVE_VQDMULLs32bh:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMULLs32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4655,
GIR_Done,
// Label 1406: @69415
GIM_Try, /*On fail goto*//*Label 1407*/ 69500, // Rule ID 4657 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
// (intrinsic_wo_chain:{ *:[v2i64] } 2498:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) => (MVE_VQDMULLs32th:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMULLs32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4657,
GIR_Done,
// Label 1407: @69500
GIM_Try, /*On fail goto*//*Label 1408*/ 69580, // Rule ID 4004 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vsli,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_7,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2538:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) => (MVE_VSLIimm8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSLIimm8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4004,
GIR_Done,
// Label 1408: @69580
GIM_Try, /*On fail goto*//*Label 1409*/ 69660, // Rule ID 4006 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vsli,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2538:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) => (MVE_VSLIimm16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSLIimm16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4006,
GIR_Done,
// Label 1409: @69660
GIM_Try, /*On fail goto*//*Label 1410*/ 69740, // Rule ID 4008 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vsli,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_31,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2538:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) => (MVE_VSLIimm32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSLIimm32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4008,
GIR_Done,
// Label 1410: @69740
GIM_Try, /*On fail goto*//*Label 1411*/ 69820, // Rule ID 4010 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vsri,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2540:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm) => (MVE_VSRIimm8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSRIimm8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4010,
GIR_Done,
// Label 1411: @69820
GIM_Try, /*On fail goto*//*Label 1412*/ 69900, // Rule ID 4012 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vsri,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2540:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm) => (MVE_VSRIimm16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSRIimm16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4012,
GIR_Done,
// Label 1412: @69900
GIM_Try, /*On fail goto*//*Label 1413*/ 69980, // Rule ID 4014 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vsri,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm32,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2540:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm) => (MVE_VSRIimm32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSRIimm32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4014,
GIR_Done,
// Label 1413: @69980
GIM_Try, /*On fail goto*//*Label 1414*/ 70073, // Rule ID 4481 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcmulq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8f16] } 2437:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) => (MVE_VCMULf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCMULf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4481,
GIR_Done,
// Label 1414: @70073
GIM_Try, /*On fail goto*//*Label 1415*/ 70166, // Rule ID 4483 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcmulq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f32] } 2437:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) => (MVE_VCMULf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCMULf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4483,
GIR_Done,
// Label 1415: @70166
GIM_Try, /*On fail goto*//*Label 1416*/ 70237, // Rule ID 146 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usada8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2770:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (USADA8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USADA8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 146,
GIR_Done,
// Label 1416: @70237
GIM_Try, /*On fail goto*//*Label 1417*/ 70308, // Rule ID 476 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usada8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2770:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2USADA8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USADA8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 476,
GIR_Done,
// Label 1417: @70308
GIM_Try, /*On fail goto*//*Label 1418*/ 70379, // Rule ID 535 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2715:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLAD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 535,
GIR_Done,
// Label 1418: @70379
GIM_Try, /*On fail goto*//*Label 1419*/ 70450, // Rule ID 536 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smladx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2716:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLADX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 536,
GIR_Done,
// Label 1419: @70450
GIM_Try, /*On fail goto*//*Label 1420*/ 70521, // Rule ID 537 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlsd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2723:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 537,
GIR_Done,
// Label 1420: @70521
GIM_Try, /*On fail goto*//*Label 1421*/ 70592, // Rule ID 538 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlsdx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2724:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) => (t2SMLSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLSDX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 538,
GIR_Done,
// Label 1421: @70592
GIM_Try, /*On fail goto*//*Label 1422*/ 70656, // Rule ID 967 //
GIM_CheckFeatures, GIFBS_HasDotProd,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_udot,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2570:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VUDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUDOTD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 967,
GIR_Done,
// Label 1422: @70656
GIM_Try, /*On fail goto*//*Label 1423*/ 70720, // Rule ID 968 //
GIM_CheckFeatures, GIFBS_HasDotProd,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sdot,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2558:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VSDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSDOTD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 968,
GIR_Done,
// Label 1423: @70720
GIM_Try, /*On fail goto*//*Label 1424*/ 70784, // Rule ID 969 //
GIM_CheckFeatures, GIFBS_HasDotProd,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_udot,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2570:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUDOTQ,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 969,
GIR_Done,
// Label 1424: @70784
GIM_Try, /*On fail goto*//*Label 1425*/ 70848, // Rule ID 970 //
GIM_CheckFeatures, GIFBS_HasDotProd,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sdot,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2558:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VSDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSDOTQ,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 970,
GIR_Done,
// Label 1425: @70848
GIM_Try, /*On fail goto*//*Label 1426*/ 70912, // Rule ID 971 //
GIM_CheckFeatures, GIFBS_HasMatMulInt8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_smmla,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2569:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VSMMLA:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSMMLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 971,
GIR_Done,
// Label 1426: @70912
GIM_Try, /*On fail goto*//*Label 1427*/ 70976, // Rule ID 972 //
GIM_CheckFeatures, GIFBS_HasMatMulInt8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_ummla,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2571:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUMMLA:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUMMLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 972,
GIR_Done,
// Label 1427: @70976
GIM_Try, /*On fail goto*//*Label 1428*/ 71040, // Rule ID 973 //
GIM_CheckFeatures, GIFBS_HasMatMulInt8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_usmmla,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2573:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUSMMLA:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUSMMLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 973,
GIR_Done,
// Label 1428: @71040
GIM_Try, /*On fail goto*//*Label 1429*/ 71104, // Rule ID 974 //
GIM_CheckFeatures, GIFBS_HasMatMulInt8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_usdot,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2572:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VUSDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUSDOTD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 974,
GIR_Done,
// Label 1429: @71104
GIM_Try, /*On fail goto*//*Label 1430*/ 71168, // Rule ID 975 //
GIM_CheckFeatures, GIFBS_HasMatMulInt8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_usdot,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2572:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VUSDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUSDOTQ,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 975,
GIR_Done,
// Label 1430: @71168
GIM_Try, /*On fail goto*//*Label 1431*/ 71239, // Rule ID 1708 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vtbx1,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2690:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VTBX1:{ *:[v8i8] } DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTBX1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // orig
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1708,
GIR_Done,
// Label 1431: @71239
GIM_Try, /*On fail goto*//*Label 1432*/ 71303, // Rule ID 1739 //
GIM_CheckFeatures, GIFBS_HasSHA2_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha1su0,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2563:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA1SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA1SU0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1739,
GIR_Done,
// Label 1432: @71303
GIM_Try, /*On fail goto*//*Label 1433*/ 71367, // Rule ID 1740 //
GIM_CheckFeatures, GIFBS_HasSHA2_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha256h,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2565:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256H:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA256H,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1740,
GIR_Done,
// Label 1433: @71367
GIM_Try, /*On fail goto*//*Label 1434*/ 71431, // Rule ID 1741 //
GIM_CheckFeatures, GIFBS_HasSHA2_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha256h2,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2566:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256H2:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA256H2,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1741,
GIR_Done,
// Label 1434: @71431
GIM_Try, /*On fail goto*//*Label 1435*/ 71495, // Rule ID 1742 //
GIM_CheckFeatures, GIFBS_HasSHA2_HasV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha256su1,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2568:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (SHA256SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA256SU1,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1742,
GIR_Done,
// Label 1435: @71495
GIM_Try, /*On fail goto*//*Label 1436*/ 71559, // Rule ID 1743 //
GIM_CheckFeatures, GIFBS_HasBF16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_bfdot,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2554:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vd, DPR:{ *:[v4bf16] }:$Vn, DPR:{ *:[v4bf16] }:$Vm) => (BF16VDOTS_VDOTD:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vd, DPR:{ *:[v4bf16] }:$Vn, DPR:{ *:[v4bf16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BF16VDOTS_VDOTD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1743,
GIR_Done,
// Label 1436: @71559
GIM_Try, /*On fail goto*//*Label 1437*/ 71623, // Rule ID 1744 //
GIM_CheckFeatures, GIFBS_HasBF16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_bfdot,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2554:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm) => (BF16VDOTS_VDOTQ:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::BF16VDOTS_VDOTQ,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1744,
GIR_Done,
// Label 1437: @71623
GIM_Try, /*On fail goto*//*Label 1438*/ 71687, // Rule ID 1745 //
GIM_CheckFeatures, GIFBS_HasBF16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_bfmmla,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2557:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm) => (VMMLA:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMMLA,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1745,
GIR_Done,
// Label 1438: @71687
GIM_Try, /*On fail goto*//*Label 1439*/ 71751, // Rule ID 1746 //
GIM_CheckFeatures, GIFBS_HasBF16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_bfmlalt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2556:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm) => (VBF16MALTQ:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBF16MALTQ,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1746,
GIR_Done,
// Label 1439: @71751
GIM_Try, /*On fail goto*//*Label 1440*/ 71815, // Rule ID 1747 //
GIM_CheckFeatures, GIFBS_HasBF16_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_bfmlalb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2555:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm) => (VBF16MALBQ:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vd, QPR:{ *:[v8bf16] }:$Vn, QPR:{ *:[v8bf16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBF16MALBQ,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1747,
GIR_Done,
// Label 1440: @71815
GIM_Try, /*On fail goto*//*Label 1441*/ 71886, // Rule ID 1926 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2715:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLAD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1926,
GIR_Done,
// Label 1441: @71886
GIM_Try, /*On fail goto*//*Label 1442*/ 71957, // Rule ID 1927 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smladx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2716:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLADX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1927,
GIR_Done,
// Label 1442: @71957
GIM_Try, /*On fail goto*//*Label 1443*/ 72028, // Rule ID 1928 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlsd,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2723:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1928,
GIR_Done,
// Label 1443: @72028
GIM_Try, /*On fail goto*//*Label 1444*/ 72099, // Rule ID 1929 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlsdx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2724:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) => (SMLSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLSDX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Ra
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1929,
GIR_Done,
// Label 1444: @72099
GIM_Try, /*On fail goto*//*Label 1445*/ 72170, // Rule ID 2005 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlabb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2713:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLABB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2005,
GIR_Done,
// Label 1445: @72170
GIM_Try, /*On fail goto*//*Label 1446*/ 72241, // Rule ID 2006 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlabt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2714:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLABT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2006,
GIR_Done,
// Label 1446: @72241
GIM_Try, /*On fail goto*//*Label 1447*/ 72312, // Rule ID 2007 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlatb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2719:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLATB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2007,
GIR_Done,
// Label 1447: @72312
GIM_Try, /*On fail goto*//*Label 1448*/ 72383, // Rule ID 2008 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlatt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2720:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLATT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2008,
GIR_Done,
// Label 1448: @72383
GIM_Try, /*On fail goto*//*Label 1449*/ 72454, // Rule ID 2009 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlawb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2721:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLAWB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2009,
GIR_Done,
// Label 1449: @72454
GIM_Try, /*On fail goto*//*Label 1450*/ 72525, // Rule ID 2010 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlawt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2722:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMLAWT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2010,
GIR_Done,
// Label 1450: @72525
GIM_Try, /*On fail goto*//*Label 1451*/ 72596, // Rule ID 2192 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlabb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2713:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLABB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2192,
GIR_Done,
// Label 1451: @72596
GIM_Try, /*On fail goto*//*Label 1452*/ 72667, // Rule ID 2193 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlabt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2714:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLABT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2193,
GIR_Done,
// Label 1452: @72667
GIM_Try, /*On fail goto*//*Label 1453*/ 72738, // Rule ID 2194 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlatb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2719:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLATB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2194,
GIR_Done,
// Label 1453: @72738
GIM_Try, /*On fail goto*//*Label 1454*/ 72809, // Rule ID 2195 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlatt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2720:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLATT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2195,
GIR_Done,
// Label 1454: @72809
GIM_Try, /*On fail goto*//*Label 1455*/ 72880, // Rule ID 2196 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlawb,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2721:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLAWB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2196,
GIR_Done,
// Label 1455: @72880
GIM_Try, /*On fail goto*//*Label 1456*/ 72951, // Rule ID 2197 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_smlawt,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2722:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) => (t2SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMLAWT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // acc
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2197,
GIR_Done,
// Label 1456: @72951
GIM_Try, /*On fail goto*//*Label 1457*/ 73022, // Rule ID 2466 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2642:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQRDMLAHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2466,
GIR_Done,
// Label 1457: @73022
GIM_Try, /*On fail goto*//*Label 1458*/ 73093, // Rule ID 2467 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2642:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQRDMLAHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2467,
GIR_Done,
// Label 1458: @73093
GIM_Try, /*On fail goto*//*Label 1459*/ 73164, // Rule ID 2468 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2642:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQRDMLAHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2468,
GIR_Done,
// Label 1459: @73164
GIM_Try, /*On fail goto*//*Label 1460*/ 73235, // Rule ID 2469 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2642:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQRDMLAHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLAHv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2469,
GIR_Done,
// Label 1460: @73235
GIM_Try, /*On fail goto*//*Label 1461*/ 73306, // Rule ID 2474 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmlsh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2643:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQRDMLSHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLSHv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2474,
GIR_Done,
// Label 1461: @73306
GIM_Try, /*On fail goto*//*Label 1462*/ 73377, // Rule ID 2475 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmlsh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2643:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQRDMLSHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLSHv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2475,
GIR_Done,
// Label 1462: @73377
GIM_Try, /*On fail goto*//*Label 1463*/ 73448, // Rule ID 2476 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmlsh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2643:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQRDMLSHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLSHv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2476,
GIR_Done,
// Label 1463: @73448
GIM_Try, /*On fail goto*//*Label 1464*/ 73519, // Rule ID 2477 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8_1a,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vqrdmlsh,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2643:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQRDMLSHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQRDMLSHv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2477,
GIR_Done,
// Label 1464: @73519
GIM_Try, /*On fail goto*//*Label 1465*/ 73590, // Rule ID 2554 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2579:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VBSPd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2554,
GIR_Done,
// Label 1465: @73590
GIM_Try, /*On fail goto*//*Label 1466*/ 73661, // Rule ID 2555 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i16] } 2579:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VBSPd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2555,
GIR_Done,
// Label 1466: @73661
GIM_Try, /*On fail goto*//*Label 1467*/ 73732, // Rule ID 2556 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i32] } 2579:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VBSPd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2556,
GIR_Done,
// Label 1467: @73732
GIM_Try, /*On fail goto*//*Label 1468*/ 73803, // Rule ID 2557 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2f32] } 2579:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VBSPd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2557,
GIR_Done,
// Label 1468: @73803
GIM_Try, /*On fail goto*//*Label 1469*/ 73874, // Rule ID 2558 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v1i64] } 2579:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VBSPd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2558,
GIR_Done,
// Label 1469: @73874
GIM_Try, /*On fail goto*//*Label 1470*/ 73945, // Rule ID 2563 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2579:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VBSPq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2563,
GIR_Done,
// Label 1470: @73945
GIM_Try, /*On fail goto*//*Label 1471*/ 74016, // Rule ID 2564 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2579:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VBSPq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2564,
GIR_Done,
// Label 1471: @74016
GIM_Try, /*On fail goto*//*Label 1472*/ 74087, // Rule ID 2565 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2579:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VBSPq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2565,
GIR_Done,
// Label 1472: @74087
GIM_Try, /*On fail goto*//*Label 1473*/ 74158, // Rule ID 2566 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4f32] } 2579:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VBSPq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2566,
GIR_Done,
// Label 1473: @74158
GIM_Try, /*On fail goto*//*Label 1474*/ 74229, // Rule ID 2567 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vbsl,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v2i64] } 2579:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VBSPq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VBSPq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2567,
GIR_Done,
// Label 1474: @74229
GIM_Try, /*On fail goto*//*Label 1475*/ 74304, // Rule ID 4940 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2493:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLAH_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLAH_qrs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4940,
GIR_Done,
// Label 1475: @74304
GIM_Try, /*On fail goto*//*Label 1476*/ 74379, // Rule ID 4942 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2493:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLAH_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLAH_qrs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4942,
GIR_Done,
// Label 1476: @74379
GIM_Try, /*On fail goto*//*Label 1477*/ 74454, // Rule ID 4944 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2493:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLAH_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLAH_qrs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4944,
GIR_Done,
// Label 1477: @74454
GIM_Try, /*On fail goto*//*Label 1478*/ 74529, // Rule ID 4946 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2502:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLAH_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLAH_qrs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4946,
GIR_Done,
// Label 1478: @74529
GIM_Try, /*On fail goto*//*Label 1479*/ 74604, // Rule ID 4948 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2502:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLAH_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLAH_qrs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4948,
GIR_Done,
// Label 1479: @74604
GIM_Try, /*On fail goto*//*Label 1480*/ 74679, // Rule ID 4950 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmlah,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2502:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLAH_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLAH_qrs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4950,
GIR_Done,
// Label 1480: @74679
GIM_Try, /*On fail goto*//*Label 1481*/ 74754, // Rule ID 4952 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlash,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2495:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLASH_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLASH_qrs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4952,
GIR_Done,
// Label 1481: @74754
GIM_Try, /*On fail goto*//*Label 1482*/ 74829, // Rule ID 4954 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlash,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2495:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLASH_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLASH_qrs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4954,
GIR_Done,
// Label 1482: @74829
GIM_Try, /*On fail goto*//*Label 1483*/ 74904, // Rule ID 4956 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlash,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2495:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQDMLASH_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLASH_qrs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4956,
GIR_Done,
// Label 1483: @74904
GIM_Try, /*On fail goto*//*Label 1484*/ 74979, // Rule ID 4958 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmlash,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v16i8] } 2504:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLASH_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLASH_qrs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4958,
GIR_Done,
// Label 1484: @74979
GIM_Try, /*On fail goto*//*Label 1485*/ 75054, // Rule ID 4960 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmlash,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i16] } 2504:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLASH_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLASH_qrs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4960,
GIR_Done,
// Label 1485: @75054
GIM_Try, /*On fail goto*//*Label 1486*/ 75129, // Rule ID 4962 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqrdmlash,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2504:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s) => (MVE_VQRDMLASH_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, rGPR:{ *:[i32] }:$s)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLASH_qrs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // v1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // v2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // s
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4962,
GIR_Done,
// Label 1486: @75129
GIM_Try, /*On fail goto*//*Label 1487*/ 75225, // Rule ID 2709 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha1c,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2559:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) => (SHA1C:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // hash_e
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::SUBREG_TO_REG,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::DPair_with_ssub_0RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA1C,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // hash_abcd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wk
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2709,
GIR_Done,
// Label 1487: @75225
GIM_Try, /*On fail goto*//*Label 1488*/ 75321, // Rule ID 2710 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha1m,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2561:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) => (SHA1M:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // hash_e
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::SUBREG_TO_REG,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::DPair_with_ssub_0RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA1M,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // hash_abcd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wk
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2710,
GIR_Done,
// Label 1488: @75321
GIM_Try, /*On fail goto*//*Label 1489*/ 75417, // Rule ID 2711 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_sha1p,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
// (intrinsic_wo_chain:{ *:[v4i32] } 2562:{ *:[iPTR] }, v4i32:{ *:[v4i32] }:$hash_abcd, i32:{ *:[i32] }:$hash_e, v4i32:{ *:[v4i32] }:$wk) => (SHA1P:{ *:[v4i32] } v4i32:{ *:[v4i32] }:$hash_abcd, (SUBREG_TO_REG:{ *:[v16i8] } 0:{ *:[i64] }, (COPY_TO_REGCLASS:{ *:[f32] } i32:{ *:[i32] }:$hash_e, SPR:{ *:[i32] }), ssub_0:{ *:[i32] }), v4i32:{ *:[v4i32] }:$wk)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // hash_e
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::SUBREG_TO_REG,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/1, /*Imm*/0,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::DPair_with_ssub_0RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SHA1P,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // hash_abcd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // wk
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2711,
GIR_Done,
// Label 1489: @75417
GIM_Reject,
// Label 1327: @75418
GIM_Try, /*On fail goto*//*Label 1490*/ 78952,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/6,
GIM_Try, /*On fail goto*//*Label 1491*/ 75510, // Rule ID 3839 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshll_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2534:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHLL_lws8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHLL_lws8bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3839,
GIR_Done,
// Label 1491: @75510
GIM_Try, /*On fail goto*//*Label 1492*/ 75597, // Rule ID 3843 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshll_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2534:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHLL_lws8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHLL_lws8th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3843,
GIR_Done,
// Label 1492: @75597
GIM_Try, /*On fail goto*//*Label 1493*/ 75684, // Rule ID 3847 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshll_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2534:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHLL_lws16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHLL_lws16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3847,
GIR_Done,
// Label 1493: @75684
GIM_Try, /*On fail goto*//*Label 1494*/ 75771, // Rule ID 3851 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshll_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2534:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHLL_lws16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHLL_lws16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3851,
GIR_Done,
// Label 1494: @75771
GIM_Try, /*On fail goto*//*Label 1495*/ 75858, // Rule ID 3855 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshll_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2534:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHLL_lwu8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHLL_lwu8bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3855,
GIR_Done,
// Label 1495: @75858
GIM_Try, /*On fail goto*//*Label 1496*/ 75945, // Rule ID 3859 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshll_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2534:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHLL_lwu8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHLL_lwu8th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3859,
GIR_Done,
// Label 1496: @75945
GIM_Try, /*On fail goto*//*Label 1497*/ 76032, // Rule ID 3863 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshll_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2534:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHLL_lwu16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHLL_lwu16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3863,
GIR_Done,
// Label 1497: @76032
GIM_Try, /*On fail goto*//*Label 1498*/ 76119, // Rule ID 3867 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshll_imm,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2534:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHLL_lwu16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHLL_lwu16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3867,
GIR_Done,
// Label 1498: @76119
GIM_Try, /*On fail goto*//*Label 1499*/ 76212, // Rule ID 4485 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2489:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBs8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLBs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4485,
GIR_Done,
// Label 1499: @76212
GIM_Try, /*On fail goto*//*Label 1500*/ 76305, // Rule ID 4487 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2489:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTs8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLTs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4487,
GIR_Done,
// Label 1500: @76305
GIM_Try, /*On fail goto*//*Label 1501*/ 76398, // Rule ID 4489 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2489:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBs16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLBs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4489,
GIR_Done,
// Label 1501: @76398
GIM_Try, /*On fail goto*//*Label 1502*/ 76491, // Rule ID 4491 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2489:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTs16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLTs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4491,
GIR_Done,
// Label 1502: @76491
GIM_Try, /*On fail goto*//*Label 1503*/ 76584, // Rule ID 4493 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v2i64] } 2489:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBs32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLBs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4493,
GIR_Done,
// Label 1503: @76584
GIM_Try, /*On fail goto*//*Label 1504*/ 76677, // Rule ID 4495 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v2i64] } 2489:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTs32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLTs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4495,
GIR_Done,
// Label 1504: @76677
GIM_Try, /*On fail goto*//*Label 1505*/ 76770, // Rule ID 4497 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2489:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBu8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLBu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4497,
GIR_Done,
// Label 1505: @76770
GIM_Try, /*On fail goto*//*Label 1506*/ 76863, // Rule ID 4499 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2489:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTu8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLTu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4499,
GIR_Done,
// Label 1506: @76863
GIM_Try, /*On fail goto*//*Label 1507*/ 76956, // Rule ID 4501 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2489:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBu16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLBu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4501,
GIR_Done,
// Label 1507: @76956
GIM_Try, /*On fail goto*//*Label 1508*/ 77049, // Rule ID 4503 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2489:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTu16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLTu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4503,
GIR_Done,
// Label 1508: @77049
GIM_Try, /*On fail goto*//*Label 1509*/ 77142, // Rule ID 4505 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_wo_chain:{ *:[v2i64] } 2489:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VMULLBu32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLBu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4505,
GIR_Done,
// Label 1509: @77142
GIM_Try, /*On fail goto*//*Label 1510*/ 77235, // Rule ID 4507 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmull,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_wo_chain:{ *:[v2i64] } 2489:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VMULLTu32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULLTu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4507,
GIR_Done,
// Label 1510: @77235
GIM_Try, /*On fail goto*//*Label 1511*/ 77336, // Rule ID 4130 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcaddq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8f16] } 2432:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) => (MVE_VCADDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCADDf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4130,
GIR_Done,
// Label 1511: @77336
GIM_Try, /*On fail goto*//*Label 1512*/ 77437, // Rule ID 4132 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcaddq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f32] } 2432:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) => (MVE_VCADDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCADDf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4132,
GIR_Done,
// Label 1512: @77437
GIM_Try, /*On fail goto*//*Label 1513*/ 77538, // Rule ID 4639 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcaddq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2432:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VCADDi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCADDi8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4639,
GIR_Done,
// Label 1513: @77538
GIM_Try, /*On fail goto*//*Label 1514*/ 77639, // Rule ID 4641 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcaddq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2432:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VCADDi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCADDi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4641,
GIR_Done,
// Label 1514: @77639
GIM_Try, /*On fail goto*//*Label 1515*/ 77740, // Rule ID 4643 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcaddq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2432:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VCADDi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCADDi32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4643,
GIR_Done,
// Label 1515: @77740
GIM_Try, /*On fail goto*//*Label 1516*/ 77841, // Rule ID 4645 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcaddq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2432:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VHCADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHCADDs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4645,
GIR_Done,
// Label 1516: @77841
GIM_Try, /*On fail goto*//*Label 1517*/ 77942, // Rule ID 4647 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcaddq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2432:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VHCADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHCADDs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4647,
GIR_Done,
// Label 1517: @77942
GIM_Try, /*On fail goto*//*Label 1518*/ 78043, // Rule ID 4649 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcaddq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2432:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VHCADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VHCADDs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4649,
GIR_Done,
// Label 1518: @78043
GIM_Try, /*On fail goto*//*Label 1519*/ 78126, // Rule ID 3131 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2425:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VABAVs8:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABAVs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rda
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rda_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3131,
GIR_Done,
// Label 1519: @78126
GIM_Try, /*On fail goto*//*Label 1520*/ 78209, // Rule ID 3133 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2425:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VABAVs16:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABAVs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rda
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rda_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3133,
GIR_Done,
// Label 1520: @78209
GIM_Try, /*On fail goto*//*Label 1521*/ 78292, // Rule ID 3135 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2425:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VABAVs32:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABAVs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rda
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rda_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3135,
GIR_Done,
// Label 1521: @78292
GIM_Try, /*On fail goto*//*Label 1522*/ 78375, // Rule ID 3137 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2425:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VABAVu8:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABAVu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rda
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rda_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3137,
GIR_Done,
// Label 1522: @78375
GIM_Try, /*On fail goto*//*Label 1523*/ 78458, // Rule ID 3139 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2425:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VABAVu16:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABAVu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rda
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rda_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3139,
GIR_Done,
// Label 1523: @78458
GIM_Try, /*On fail goto*//*Label 1524*/ 78541, // Rule ID 3141 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vabav,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2425:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VABAVu32:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABAVu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rda
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rda_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3141,
GIR_Done,
// Label 1524: @78541
GIM_Try, /*On fail goto*//*Label 1525*/ 78632, // Rule ID 4096 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcmlaq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8f16] } 2435:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) => (MVE_VCMLAf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCMLAf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4096,
GIR_Done,
// Label 1525: @78632
GIM_Try, /*On fail goto*//*Label 1526*/ 78723, // Rule ID 4098 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vcmlaq,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v4f32] } 2435:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) => (MVE_VCMLAf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCMLAf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // rot
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4098,
GIR_Done,
// Label 1526: @78723
GIM_Try, /*On fail goto*//*Label 1527*/ 78822, // Rule ID 2703 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vtbx2,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2691:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vm) => (VTBX2:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v16i8] } DPair:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v16s8,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn0
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn1
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/2,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::DPairRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, ARM::DPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTBX2,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // orig
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2703,
GIR_Done,
// Label 1527: @78822
GIM_Try, /*On fail goto*//*Label 1528*/ 78951, // Rule ID 2704 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vtbl3,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2688:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vm) => (VTBL3Pseudo:{ *:[v8i8] } (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, (IMPLICIT_DEF:{ *:[v8i8] }), dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s64,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s8,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // Vn0
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn1
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/2,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn2
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/3,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/4,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::QQPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/5, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/7, ARM::DPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTBL3Pseudo,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2704,
GIR_Done,
// Label 1528: @78951
GIM_Reject,
// Label 1490: @78952
GIM_Try, /*On fail goto*//*Label 1529*/ 84652,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/7,
GIM_Try, /*On fail goto*//*Label 1530*/ 79056, // Rule ID 3950 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2530:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_by_vecs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3950,
GIR_Done,
// Label 1530: @79056
GIM_Try, /*On fail goto*//*Label 1531*/ 79155, // Rule ID 3952 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2530:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_by_vecs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3952,
GIR_Done,
// Label 1531: @79155
GIM_Try, /*On fail goto*//*Label 1532*/ 79254, // Rule ID 3954 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2530:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_by_vecs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3954,
GIR_Done,
// Label 1532: @79254
GIM_Try, /*On fail goto*//*Label 1533*/ 79353, // Rule ID 3956 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2530:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_by_vecu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3956,
GIR_Done,
// Label 1533: @79353
GIM_Try, /*On fail goto*//*Label 1534*/ 79452, // Rule ID 3958 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2530:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_by_vecu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3958,
GIR_Done,
// Label 1534: @79452
GIM_Try, /*On fail goto*//*Label 1535*/ 79551, // Rule ID 3960 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2530:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_by_vecu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3960,
GIR_Done,
// Label 1535: @79551
GIM_Try, /*On fail goto*//*Label 1536*/ 79650, // Rule ID 3962 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2530:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_by_vecs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3962,
GIR_Done,
// Label 1536: @79650
GIM_Try, /*On fail goto*//*Label 1537*/ 79749, // Rule ID 3964 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2530:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_by_vecs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3964,
GIR_Done,
// Label 1537: @79749
GIM_Try, /*On fail goto*//*Label 1538*/ 79848, // Rule ID 3966 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2530:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_by_vecs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3966,
GIR_Done,
// Label 1538: @79848
GIM_Try, /*On fail goto*//*Label 1539*/ 79947, // Rule ID 3968 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2530:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_by_vecu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3968,
GIR_Done,
// Label 1539: @79947
GIM_Try, /*On fail goto*//*Label 1540*/ 80046, // Rule ID 3970 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2530:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_by_vecu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3970,
GIR_Done,
// Label 1540: @80046
GIM_Try, /*On fail goto*//*Label 1541*/ 80145, // Rule ID 3972 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2530:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_by_vecu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3972,
GIR_Done,
// Label 1541: @80145
GIM_Try, /*On fail goto*//*Label 1542*/ 80244, // Rule ID 3974 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2530:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_by_vecs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3974,
GIR_Done,
// Label 1542: @80244
GIM_Try, /*On fail goto*//*Label 1543*/ 80343, // Rule ID 3976 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2530:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_by_vecs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3976,
GIR_Done,
// Label 1543: @80343
GIM_Try, /*On fail goto*//*Label 1544*/ 80442, // Rule ID 3978 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2530:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_by_vecs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3978,
GIR_Done,
// Label 1544: @80442
GIM_Try, /*On fail goto*//*Label 1545*/ 80541, // Rule ID 3980 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2530:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_by_vecu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3980,
GIR_Done,
// Label 1545: @80541
GIM_Try, /*On fail goto*//*Label 1546*/ 80640, // Rule ID 3982 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2530:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_by_vecu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3982,
GIR_Done,
// Label 1546: @80640
GIM_Try, /*On fail goto*//*Label 1547*/ 80739, // Rule ID 3984 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2530:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_by_vecu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3984,
GIR_Done,
// Label 1547: @80739
GIM_Try, /*On fail goto*//*Label 1548*/ 80838, // Rule ID 3986 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2530:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_by_vecs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3986,
GIR_Done,
// Label 1548: @80838
GIM_Try, /*On fail goto*//*Label 1549*/ 80937, // Rule ID 3988 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2530:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_by_vecs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3988,
GIR_Done,
// Label 1549: @80937
GIM_Try, /*On fail goto*//*Label 1550*/ 81036, // Rule ID 3990 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2530:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_by_vecs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3990,
GIR_Done,
// Label 1550: @81036
GIM_Try, /*On fail goto*//*Label 1551*/ 81135, // Rule ID 3992 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2530:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_by_vecu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3992,
GIR_Done,
// Label 1551: @81135
GIM_Try, /*On fail goto*//*Label 1552*/ 81234, // Rule ID 3994 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2530:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_by_vecu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3994,
GIR_Done,
// Label 1552: @81234
GIM_Try, /*On fail goto*//*Label 1553*/ 81333, // Rule ID 3996 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_vector,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2530:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_by_vecu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3996,
GIR_Done,
// Label 1553: @81333
GIM_Try, /*On fail goto*//*Label 1554*/ 81418, // Rule ID 4587 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2500:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVNs32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4587,
GIR_Done,
// Label 1554: @81418
GIM_Try, /*On fail goto*//*Label 1555*/ 81503, // Rule ID 4589 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2500:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVNs32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4589,
GIR_Done,
// Label 1555: @81503
GIM_Try, /*On fail goto*//*Label 1556*/ 81588, // Rule ID 4591 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2500:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVNs16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4591,
GIR_Done,
// Label 1556: @81588
GIM_Try, /*On fail goto*//*Label 1557*/ 81673, // Rule ID 4593 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2500:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVNs16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4593,
GIR_Done,
// Label 1557: @81673
GIM_Try, /*On fail goto*//*Label 1558*/ 81758, // Rule ID 4595 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2500:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVNu32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVNu32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4595,
GIR_Done,
// Label 1558: @81758
GIM_Try, /*On fail goto*//*Label 1559*/ 81843, // Rule ID 4597 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2500:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVNu32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVNu32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4597,
GIR_Done,
// Label 1559: @81843
GIM_Try, /*On fail goto*//*Label 1560*/ 81928, // Rule ID 4599 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2500:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVNu16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVNu16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4599,
GIR_Done,
// Label 1560: @81928
GIM_Try, /*On fail goto*//*Label 1561*/ 82013, // Rule ID 4601 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2500:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVNu16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVNu16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4601,
GIR_Done,
// Label 1561: @82013
GIM_Try, /*On fail goto*//*Label 1562*/ 82098, // Rule ID 4603 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2500:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVUNs32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4603,
GIR_Done,
// Label 1562: @82098
GIM_Try, /*On fail goto*//*Label 1563*/ 82183, // Rule ID 4605 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2500:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVUNs32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4605,
GIR_Done,
// Label 1563: @82183
GIM_Try, /*On fail goto*//*Label 1564*/ 82268, // Rule ID 4607 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2500:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQMOVUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVUNs16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4607,
GIR_Done,
// Label 1564: @82268
GIM_Try, /*On fail goto*//*Label 1565*/ 82353, // Rule ID 4609 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqmovn,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2500:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQMOVUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQMOVUNs16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd_src
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4609,
GIR_Done,
// Label 1565: @82353
GIM_Try, /*On fail goto*//*Label 1566*/ 82438, // Rule ID 4799 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2528:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_qrs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4799,
GIR_Done,
// Label 1566: @82438
GIM_Try, /*On fail goto*//*Label 1567*/ 82523, // Rule ID 4801 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2528:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_qrs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4801,
GIR_Done,
// Label 1567: @82523
GIM_Try, /*On fail goto*//*Label 1568*/ 82608, // Rule ID 4803 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2528:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_qrs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4803,
GIR_Done,
// Label 1568: @82608
GIM_Try, /*On fail goto*//*Label 1569*/ 82693, // Rule ID 4805 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2528:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_qru8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4805,
GIR_Done,
// Label 1569: @82693
GIM_Try, /*On fail goto*//*Label 1570*/ 82778, // Rule ID 4807 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2528:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_qru16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4807,
GIR_Done,
// Label 1570: @82778
GIM_Try, /*On fail goto*//*Label 1571*/ 82863, // Rule ID 4809 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2528:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHL_qru32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4809,
GIR_Done,
// Label 1571: @82863
GIM_Try, /*On fail goto*//*Label 1572*/ 82948, // Rule ID 4811 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2528:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_qrs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4811,
GIR_Done,
// Label 1572: @82948
GIM_Try, /*On fail goto*//*Label 1573*/ 83033, // Rule ID 4813 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2528:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_qrs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4813,
GIR_Done,
// Label 1573: @83033
GIM_Try, /*On fail goto*//*Label 1574*/ 83118, // Rule ID 4815 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2528:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_qrs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4815,
GIR_Done,
// Label 1574: @83118
GIM_Try, /*On fail goto*//*Label 1575*/ 83203, // Rule ID 4817 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2528:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_qru8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4817,
GIR_Done,
// Label 1575: @83203
GIM_Try, /*On fail goto*//*Label 1576*/ 83288, // Rule ID 4819 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2528:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_qru16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4819,
GIR_Done,
// Label 1576: @83288
GIM_Try, /*On fail goto*//*Label 1577*/ 83373, // Rule ID 4821 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2528:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHL_qru32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4821,
GIR_Done,
// Label 1577: @83373
GIM_Try, /*On fail goto*//*Label 1578*/ 83458, // Rule ID 4823 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2528:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_qrs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4823,
GIR_Done,
// Label 1578: @83458
GIM_Try, /*On fail goto*//*Label 1579*/ 83543, // Rule ID 4825 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2528:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_qrs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4825,
GIR_Done,
// Label 1579: @83543
GIM_Try, /*On fail goto*//*Label 1580*/ 83628, // Rule ID 4827 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2528:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_qrs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4827,
GIR_Done,
// Label 1580: @83628
GIM_Try, /*On fail goto*//*Label 1581*/ 83713, // Rule ID 4829 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2528:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_qru8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4829,
GIR_Done,
// Label 1581: @83713
GIM_Try, /*On fail goto*//*Label 1582*/ 83798, // Rule ID 4831 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2528:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_qru16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4831,
GIR_Done,
// Label 1582: @83798
GIM_Try, /*On fail goto*//*Label 1583*/ 83883, // Rule ID 4833 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2528:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHL_qru32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4833,
GIR_Done,
// Label 1583: @83883
GIM_Try, /*On fail goto*//*Label 1584*/ 83968, // Rule ID 4835 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2528:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_qrs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4835,
GIR_Done,
// Label 1584: @83968
GIM_Try, /*On fail goto*//*Label 1585*/ 84053, // Rule ID 4837 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2528:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_qrs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4837,
GIR_Done,
// Label 1585: @84053
GIM_Try, /*On fail goto*//*Label 1586*/ 84138, // Rule ID 4839 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2528:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_qrs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4839,
GIR_Done,
// Label 1586: @84138
GIM_Try, /*On fail goto*//*Label 1587*/ 84223, // Rule ID 4841 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2528:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_qru8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4841,
GIR_Done,
// Label 1587: @84223
GIM_Try, /*On fail goto*//*Label 1588*/ 84308, // Rule ID 4843 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2528:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_qru16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4843,
GIR_Done,
// Label 1588: @84308
GIM_Try, /*On fail goto*//*Label 1589*/ 84393, // Rule ID 4845 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshl_scalar,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2528:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHL_qru32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // in
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // sh
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4845,
GIR_Done,
// Label 1589: @84393
GIM_Try, /*On fail goto*//*Label 1590*/ 84530, // Rule ID 2705 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vtbx3,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2692:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vm) => (VTBX3Pseudo:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, (IMPLICIT_DEF:{ *:[v8i8] }), dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s64,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v8s8,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn0
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn1
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/2,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/5, // Vn2
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/3,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/4,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::QQPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/5, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/7, ARM::DPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTBX3Pseudo,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // orig
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2705,
GIR_Done,
// Label 1590: @84530
GIM_Try, /*On fail goto*//*Label 1591*/ 84651, // Rule ID 2706 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vtbl4,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2689:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vn3, v8i8:{ *:[v8i8] }:$Vm) => (VTBL4Pseudo:{ *:[v8i8] } (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn3, dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s64,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // Vn0
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn1
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/2,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn2
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/3,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/5, // Vn3
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/4,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::QQPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/5, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/7, ARM::DPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTBL4Pseudo,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2706,
GIR_Done,
// Label 1591: @84651
GIM_Reject,
// Label 1529: @84652
GIM_Try, /*On fail goto*//*Label 1592*/ 90025,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/8,
GIM_Try, /*On fail goto*//*Label 1593*/ 84752, // Rule ID 3275 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3275,
GIR_Done,
// Label 1593: @84752
GIM_Try, /*On fail goto*//*Label 1594*/ 84847, // Rule ID 3279 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVxs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVxs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3279,
GIR_Done,
// Label 1594: @84847
GIM_Try, /*On fail goto*//*Label 1595*/ 84942, // Rule ID 3283 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVu8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3283,
GIR_Done,
// Label 1595: @84942
GIM_Try, /*On fail goto*//*Label 1596*/ 85037, // Rule ID 3287 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3287,
GIR_Done,
// Label 1596: @85037
GIM_Try, /*On fail goto*//*Label 1597*/ 85132, // Rule ID 3291 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVxs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVxs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3291,
GIR_Done,
// Label 1597: @85132
GIM_Try, /*On fail goto*//*Label 1598*/ 85227, // Rule ID 3295 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVu16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3295,
GIR_Done,
// Label 1598: @85227
GIM_Try, /*On fail goto*//*Label 1599*/ 85322, // Rule ID 3299 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3299,
GIR_Done,
// Label 1599: @85322
GIM_Try, /*On fail goto*//*Label 1600*/ 85417, // Rule ID 3303 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVxs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVxs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3303,
GIR_Done,
// Label 1600: @85417
GIM_Try, /*On fail goto*//*Label 1601*/ 85512, // Rule ID 3307 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVu32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3307,
GIR_Done,
// Label 1601: @85512
GIM_Try, /*On fail goto*//*Label 1602*/ 85607, // Rule ID 3311 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLSDAVs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3311,
GIR_Done,
// Label 1602: @85607
GIM_Try, /*On fail goto*//*Label 1603*/ 85702, // Rule ID 3315 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLSDAVxs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVxs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3315,
GIR_Done,
// Label 1603: @85702
GIM_Try, /*On fail goto*//*Label 1604*/ 85797, // Rule ID 3319 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLSDAVs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3319,
GIR_Done,
// Label 1604: @85797
GIM_Try, /*On fail goto*//*Label 1605*/ 85892, // Rule ID 3323 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLSDAVxs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVxs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3323,
GIR_Done,
// Label 1605: @85892
GIM_Try, /*On fail goto*//*Label 1606*/ 85987, // Rule ID 3327 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLSDAVs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3327,
GIR_Done,
// Label 1606: @85987
GIM_Try, /*On fail goto*//*Label 1607*/ 86082, // Rule ID 3331 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLSDAVxs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVxs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3331,
GIR_Done,
// Label 1607: @86082
GIM_Try, /*On fail goto*//*Label 1608*/ 86181, // Rule ID 3277 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVas8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVas8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3277,
GIR_Done,
// Label 1608: @86181
GIM_Try, /*On fail goto*//*Label 1609*/ 86280, // Rule ID 3281 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVaxs8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVaxs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3281,
GIR_Done,
// Label 1609: @86280
GIM_Try, /*On fail goto*//*Label 1610*/ 86379, // Rule ID 3285 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLADAVau8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVau8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3285,
GIR_Done,
// Label 1610: @86379
GIM_Try, /*On fail goto*//*Label 1611*/ 86478, // Rule ID 3289 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVas16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVas16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3289,
GIR_Done,
// Label 1611: @86478
GIM_Try, /*On fail goto*//*Label 1612*/ 86577, // Rule ID 3293 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVaxs16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVaxs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3293,
GIR_Done,
// Label 1612: @86577
GIM_Try, /*On fail goto*//*Label 1613*/ 86676, // Rule ID 3297 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLADAVau16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVau16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3297,
GIR_Done,
// Label 1613: @86676
GIM_Try, /*On fail goto*//*Label 1614*/ 86775, // Rule ID 3301 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVas32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVas32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3301,
GIR_Done,
// Label 1614: @86775
GIM_Try, /*On fail goto*//*Label 1615*/ 86874, // Rule ID 3305 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVaxs32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVaxs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3305,
GIR_Done,
// Label 1615: @86874
GIM_Try, /*On fail goto*//*Label 1616*/ 86973, // Rule ID 3309 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLADAVau32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLADAVau32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3309,
GIR_Done,
// Label 1616: @86973
GIM_Try, /*On fail goto*//*Label 1617*/ 87072, // Rule ID 3313 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLSDAVas8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVas8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3313,
GIR_Done,
// Label 1617: @87072
GIM_Try, /*On fail goto*//*Label 1618*/ 87171, // Rule ID 3317 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) => (MVE_VMLSDAVaxs8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVaxs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3317,
GIR_Done,
// Label 1618: @87171
GIM_Try, /*On fail goto*//*Label 1619*/ 87270, // Rule ID 3321 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLSDAVas16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVas16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3321,
GIR_Done,
// Label 1619: @87270
GIM_Try, /*On fail goto*//*Label 1620*/ 87369, // Rule ID 3325 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) => (MVE_VMLSDAVaxs16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVaxs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3325,
GIR_Done,
// Label 1620: @87369
GIM_Try, /*On fail goto*//*Label 1621*/ 87468, // Rule ID 3329 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 0,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLSDAVas32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVas32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3329,
GIR_Done,
// Label 1621: @87468
GIM_Try, /*On fail goto*//*Label 1622*/ 87567, // Rule ID 3333 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vmldava,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/5, /*RC*/ARM::tGPREvenRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/6, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/7, /*RC*/ARM::MQPRRegClassID,
// (intrinsic_wo_chain:{ *:[i32] } 2482:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) => (MVE_VMLSDAVaxs32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMLSDAVaxs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // RdaDest
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // RdaSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // Qn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3333,
GIR_Done,
// Label 1622: @87567
GIM_Try, /*On fail goto*//*Label 1623*/ 87664, // Rule ID 4433 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2491:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLADHs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4433,
GIR_Done,
// Label 1623: @87664
GIM_Try, /*On fail goto*//*Label 1624*/ 87761, // Rule ID 4435 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2491:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLADHs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4435,
GIR_Done,
// Label 1624: @87761
GIM_Try, /*On fail goto*//*Label 1625*/ 87858, // Rule ID 4437 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2491:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLADHs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4437,
GIR_Done,
// Label 1625: @87858
GIM_Try, /*On fail goto*//*Label 1626*/ 87955, // Rule ID 4439 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2491:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLADHXs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4439,
GIR_Done,
// Label 1626: @87955
GIM_Try, /*On fail goto*//*Label 1627*/ 88052, // Rule ID 4441 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2491:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLADHXs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4441,
GIR_Done,
// Label 1627: @88052
GIM_Try, /*On fail goto*//*Label 1628*/ 88149, // Rule ID 4443 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2491:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQDMLADHXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLADHXs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4443,
GIR_Done,
// Label 1628: @88149
GIM_Try, /*On fail goto*//*Label 1629*/ 88246, // Rule ID 4445 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2491:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLADHs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4445,
GIR_Done,
// Label 1629: @88246
GIM_Try, /*On fail goto*//*Label 1630*/ 88343, // Rule ID 4447 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2491:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLADHs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4447,
GIR_Done,
// Label 1630: @88343
GIM_Try, /*On fail goto*//*Label 1631*/ 88440, // Rule ID 4449 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2491:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLADHs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4449,
GIR_Done,
// Label 1631: @88440
GIM_Try, /*On fail goto*//*Label 1632*/ 88537, // Rule ID 4451 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v16i8] } 2491:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLADHXs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4451,
GIR_Done,
// Label 1632: @88537
GIM_Try, /*On fail goto*//*Label 1633*/ 88634, // Rule ID 4453 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v8i16] } 2491:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLADHXs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4453,
GIR_Done,
// Label 1633: @88634
GIM_Try, /*On fail goto*//*Label 1634*/ 88731, // Rule ID 4455 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
// (intrinsic_wo_chain:{ *:[v4i32] } 2491:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRDMLADHXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLADHXs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4455,
GIR_Done,
// Label 1634: @88731
GIM_Try, /*On fail goto*//*Label 1635*/ 88828, // Rule ID 4457 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2491:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLSDHs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4457,
GIR_Done,
// Label 1635: @88828
GIM_Try, /*On fail goto*//*Label 1636*/ 88925, // Rule ID 4459 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2491:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLSDHs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4459,
GIR_Done,
// Label 1636: @88925
GIM_Try, /*On fail goto*//*Label 1637*/ 89022, // Rule ID 4461 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2491:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLSDHs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4461,
GIR_Done,
// Label 1637: @89022
GIM_Try, /*On fail goto*//*Label 1638*/ 89119, // Rule ID 4463 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2491:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLSDHXs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4463,
GIR_Done,
// Label 1638: @89119
GIM_Try, /*On fail goto*//*Label 1639*/ 89216, // Rule ID 4465 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2491:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLSDHXs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4465,
GIR_Done,
// Label 1639: @89216
GIM_Try, /*On fail goto*//*Label 1640*/ 89313, // Rule ID 4467 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2491:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQDMLSDHXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQDMLSDHXs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4467,
GIR_Done,
// Label 1640: @89313
GIM_Try, /*On fail goto*//*Label 1641*/ 89410, // Rule ID 4469 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2491:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLSDHs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4469,
GIR_Done,
// Label 1641: @89410
GIM_Try, /*On fail goto*//*Label 1642*/ 89507, // Rule ID 4471 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2491:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLSDHs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4471,
GIR_Done,
// Label 1642: @89507
GIM_Try, /*On fail goto*//*Label 1643*/ 89604, // Rule ID 4473 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2491:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLSDHs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4473,
GIR_Done,
// Label 1643: @89604
GIM_Try, /*On fail goto*//*Label 1644*/ 89701, // Rule ID 4475 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2491:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$a, MQPR:{ *:[v16i8] }:$b, MQPR:{ *:[v16i8] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLSDHXs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4475,
GIR_Done,
// Label 1644: @89701
GIM_Try, /*On fail goto*//*Label 1645*/ 89798, // Rule ID 4477 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2491:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$a, MQPR:{ *:[v8i16] }:$b, MQPR:{ *:[v8i16] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLSDHXs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4477,
GIR_Done,
// Label 1645: @89798
GIM_Try, /*On fail goto*//*Label 1646*/ 89895, // Rule ID 4479 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vqdmlad,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
// (intrinsic_wo_chain:{ *:[v4i32] } 2491:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRDMLSDHXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$a, MQPR:{ *:[v4i32] }:$b, MQPR:{ *:[v4i32] }:$c)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRDMLSDHXs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // b
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // c
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4479,
GIR_Done,
// Label 1646: @89895
GIM_Try, /*On fail goto*//*Label 1647*/ 90024, // Rule ID 2707 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_neon_vtbx4,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
// (intrinsic_wo_chain:{ *:[v8i8] } 2693:{ *:[iPTR] }, v8i8:{ *:[v8i8] }:$orig, v8i8:{ *:[v8i8] }:$Vn0, v8i8:{ *:[v8i8] }:$Vn1, v8i8:{ *:[v8i8] }:$Vn2, v8i8:{ *:[v8i8] }:$Vn3, v8i8:{ *:[v8i8] }:$Vm) => (VTBX4Pseudo:{ *:[v8i8] } v8i8:{ *:[v8i8] }:$orig, (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn0, dsub_0:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn1, dsub_1:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn2, dsub_2:{ *:[i32] }, v8i8:{ *:[v8i8] }:$Vn3, dsub_3:{ *:[i32] }), v8i8:{ *:[v8i8] }:$Vm)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s64,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::REG_SEQUENCE,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // Vn0
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/1,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/4, // Vn1
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/2,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/5, // Vn2
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/3,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/6, // Vn3
GIR_AddImm, /*InsnID*/1, /*SubRegIndex*/4,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/0, ARM::QQPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/1, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/3, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/5, ARM::DPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/1, /*Op*/7, ARM::DPRRegClassID,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VTBX4Pseudo,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // orig
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/7, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2707,
GIR_Done,
// Label 1647: @90024
GIM_Reject,
// Label 1592: @90025
GIM_Try, /*On fail goto*//*Label 1648*/ 94675,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/10,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vshrn,
GIM_Try, /*On fail goto*//*Label 1649*/ 90150, // Rule ID 3870 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHRNi16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3870,
GIR_Done,
// Label 1649: @90150
GIM_Try, /*On fail goto*//*Label 1650*/ 90266, // Rule ID 3872 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHRNi16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3872,
GIR_Done,
// Label 1650: @90266
GIM_Try, /*On fail goto*//*Label 1651*/ 90382, // Rule ID 3874 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHRNi32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3874,
GIR_Done,
// Label 1651: @90382
GIM_Try, /*On fail goto*//*Label 1652*/ 90498, // Rule ID 3876 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHRNi32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3876,
GIR_Done,
// Label 1652: @90498
GIM_Try, /*On fail goto*//*Label 1653*/ 90614, // Rule ID 3878 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHRNi16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3878,
GIR_Done,
// Label 1653: @90614
GIM_Try, /*On fail goto*//*Label 1654*/ 90730, // Rule ID 3880 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHRNi16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3880,
GIR_Done,
// Label 1654: @90730
GIM_Try, /*On fail goto*//*Label 1655*/ 90846, // Rule ID 3882 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHRNi32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3882,
GIR_Done,
// Label 1655: @90846
GIM_Try, /*On fail goto*//*Label 1656*/ 90962, // Rule ID 3884 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSHRNi32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3884,
GIR_Done,
// Label 1656: @90962
GIM_Try, /*On fail goto*//*Label 1657*/ 91078, // Rule ID 3886 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHRNi16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3886,
GIR_Done,
// Label 1657: @91078
GIM_Try, /*On fail goto*//*Label 1658*/ 91194, // Rule ID 3888 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHRNi16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3888,
GIR_Done,
// Label 1658: @91194
GIM_Try, /*On fail goto*//*Label 1659*/ 91310, // Rule ID 3890 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHRNi32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3890,
GIR_Done,
// Label 1659: @91310
GIM_Try, /*On fail goto*//*Label 1660*/ 91426, // Rule ID 3892 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHRNi32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3892,
GIR_Done,
// Label 1660: @91426
GIM_Try, /*On fail goto*//*Label 1661*/ 91542, // Rule ID 3894 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHRNi16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3894,
GIR_Done,
// Label 1661: @91542
GIM_Try, /*On fail goto*//*Label 1662*/ 91658, // Rule ID 3896 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHRNi16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3896,
GIR_Done,
// Label 1662: @91658
GIM_Try, /*On fail goto*//*Label 1663*/ 91774, // Rule ID 3898 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VRSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHRNi32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3898,
GIR_Done,
// Label 1663: @91774
GIM_Try, /*On fail goto*//*Label 1664*/ 91890, // Rule ID 3900 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VRSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRSHRNi32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3900,
GIR_Done,
// Label 1664: @91890
GIM_Try, /*On fail goto*//*Label 1665*/ 92006, // Rule ID 3902 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRNbhs16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRNbhs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3902,
GIR_Done,
// Label 1665: @92006
GIM_Try, /*On fail goto*//*Label 1666*/ 92122, // Rule ID 3904 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRNths16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRNths16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3904,
GIR_Done,
// Label 1666: @92122
GIM_Try, /*On fail goto*//*Label 1667*/ 92238, // Rule ID 3906 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRNbhs32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRNbhs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3906,
GIR_Done,
// Label 1667: @92238
GIM_Try, /*On fail goto*//*Label 1668*/ 92354, // Rule ID 3908 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRNths32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRNths32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3908,
GIR_Done,
// Label 1668: @92354
GIM_Try, /*On fail goto*//*Label 1669*/ 92470, // Rule ID 3910 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRNbhu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRNbhu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3910,
GIR_Done,
// Label 1669: @92470
GIM_Try, /*On fail goto*//*Label 1670*/ 92586, // Rule ID 3912 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRNthu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRNthu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3912,
GIR_Done,
// Label 1670: @92586
GIM_Try, /*On fail goto*//*Label 1671*/ 92702, // Rule ID 3914 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRNbhu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRNbhu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3914,
GIR_Done,
// Label 1671: @92702
GIM_Try, /*On fail goto*//*Label 1672*/ 92818, // Rule ID 3916 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRNthu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRNthu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3916,
GIR_Done,
// Label 1672: @92818
GIM_Try, /*On fail goto*//*Label 1673*/ 92934, // Rule ID 3918 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRNbhs16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRNbhs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3918,
GIR_Done,
// Label 1673: @92934
GIM_Try, /*On fail goto*//*Label 1674*/ 93050, // Rule ID 3920 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRNths16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRNths16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3920,
GIR_Done,
// Label 1674: @93050
GIM_Try, /*On fail goto*//*Label 1675*/ 93166, // Rule ID 3922 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRNbhs32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRNbhs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3922,
GIR_Done,
// Label 1675: @93166
GIM_Try, /*On fail goto*//*Label 1676*/ 93282, // Rule ID 3924 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRNths32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRNths32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3924,
GIR_Done,
// Label 1676: @93282
GIM_Try, /*On fail goto*//*Label 1677*/ 93398, // Rule ID 3926 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRNbhu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRNbhu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3926,
GIR_Done,
// Label 1677: @93398
GIM_Try, /*On fail goto*//*Label 1678*/ 93514, // Rule ID 3928 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRNthu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRNthu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3928,
GIR_Done,
// Label 1678: @93514
GIM_Try, /*On fail goto*//*Label 1679*/ 93630, // Rule ID 3930 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRNbhu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRNbhu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3930,
GIR_Done,
// Label 1679: @93630
GIM_Try, /*On fail goto*//*Label 1680*/ 93746, // Rule ID 3932 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRNthu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRNthu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3932,
GIR_Done,
// Label 1680: @93746
GIM_Try, /*On fail goto*//*Label 1681*/ 93862, // Rule ID 3934 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRUNs16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3934,
GIR_Done,
// Label 1681: @93862
GIM_Try, /*On fail goto*//*Label 1682*/ 93978, // Rule ID 3936 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRUNs16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3936,
GIR_Done,
// Label 1682: @93978
GIM_Try, /*On fail goto*//*Label 1683*/ 94094, // Rule ID 3938 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQSHRUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRUNs32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3938,
GIR_Done,
// Label 1683: @94094
GIM_Try, /*On fail goto*//*Label 1684*/ 94210, // Rule ID 3940 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQSHRUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSHRUNs32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3940,
GIR_Done,
// Label 1684: @94210
GIM_Try, /*On fail goto*//*Label 1685*/ 94326, // Rule ID 3942 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRUNs16bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3942,
GIR_Done,
// Label 1685: @94326
GIM_Try, /*On fail goto*//*Label 1686*/ 94442, // Rule ID 3944 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm8,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v16i8] } 2536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRUNs16th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3944,
GIR_Done,
// Label 1686: @94442
GIM_Try, /*On fail goto*//*Label 1687*/ 94558, // Rule ID 3946 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 0,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VQRSHRUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRUNs32bh,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3946,
GIR_Done,
// Label 1687: @94558
GIM_Try, /*On fail goto*//*Label 1688*/ 94674, // Rule ID 3948 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/7, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/8, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/9, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/4, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_shr_imm16,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/7, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/8, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/9, 1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_wo_chain:{ *:[v8i16] } 2536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VQRSHRUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQRSHRUNs32th,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // QdSrc
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Qm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3948,
GIR_Done,
// Label 1688: @94674
GIM_Reject,
// Label 1648: @94675
GIM_Reject,
// Label 15: @94676
GIM_Try, /*On fail goto*//*Label 1689*/ 94725,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/1,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_clrex,
GIM_Try, /*On fail goto*//*Label 1690*/ 94701, // Rule ID 252 //
GIM_CheckFeatures, GIFBS_HasV6K_IsARM,
// (intrinsic_void 2321:{ *:[iPTR] }) => (CLREX)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CLREX,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 252,
GIR_Done,
// Label 1690: @94701
GIM_Try, /*On fail goto*//*Label 1691*/ 94724, // Rule ID 590 //
GIM_CheckFeatures, GIFBS_HasV7Clrex_IsThumb,
// (intrinsic_void 2321:{ *:[iPTR] }) => (t2CLREX)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CLREX,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 590,
GIR_Done,
// Label 1691: @94724
GIM_Reject,
// Label 1689: @94725
GIM_Try, /*On fail goto*//*Label 1692*/ 95453,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/2,
GIM_Try, /*On fail goto*//*Label 1693*/ 94758, // Rule ID 351 //
GIM_CheckFeatures, GIFBS_IsThumb_IsWindows,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_undefined,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/1, 249,
// (intrinsic_void 2762:{ *:[iPTR] }, 249:{ *:[i32] }) => (t__brkdiv0)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t__brkdiv0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 351,
GIR_Done,
// Label 1693: @94758
GIM_Try, /*On fail goto*//*Label 1694*/ 94805, // Rule ID 2 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_hint,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_239,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2339:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) => (HINT (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::HINT,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2,
GIR_Done,
// Label 1694: @94805
GIM_Try, /*On fail goto*//*Label 1695*/ 94852, // Rule ID 10 //
GIM_CheckFeatures, GIFBS_HasV7_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dbg,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2334:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DBG (imm:{ *:[i32] }):$opt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::DBG,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 10,
GIR_Done,
// Label 1695: @94852
GIM_Try, /*On fail goto*//*Label 1696*/ 94892, // Rule ID 11 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_undefined,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_65535,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2762:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) => (UDF (imm:{ *:[i32] }):$imm16)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UDF,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm16
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 11,
GIR_Done,
// Label 1696: @94892
GIM_Try, /*On fail goto*//*Label 1697*/ 94932, // Rule ID 235 //
GIM_CheckFeatures, GIFBS_HasDB_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dmb,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2335:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DMB (imm:{ *:[i32] }):$opt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::DMB,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 235,
GIR_Done,
// Label 1697: @94932
GIM_Try, /*On fail goto*//*Label 1698*/ 94972, // Rule ID 236 //
GIM_CheckFeatures, GIFBS_HasDB_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dsb,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2336:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (DSB (imm:{ *:[i32] }):$opt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::DSB,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 236,
GIR_Done,
// Label 1698: @94972
GIM_Try, /*On fail goto*//*Label 1699*/ 95012, // Rule ID 237 //
GIM_CheckFeatures, GIFBS_HasDB_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_isb,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2340:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (ISB (imm:{ *:[i32] }):$opt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::ISB,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 237,
GIR_Done,
// Label 1699: @95012
GIM_Try, /*On fail goto*//*Label 1700*/ 95059, // Rule ID 283 //
GIM_CheckFeatures, GIFBS_HasV6M_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_hint,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2339:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) => (tHINT (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tHINT,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 283,
GIR_Done,
// Label 1700: @95059
GIM_Try, /*On fail goto*//*Label 1701*/ 95099, // Rule ID 350 //
GIM_CheckFeatures, GIFBS_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_undefined,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_255,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2762:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) => (tUDF (imm:{ *:[i32] }):$imm8)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tUDF,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm8
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 350,
GIR_Done,
// Label 1701: @95099
GIM_Try, /*On fail goto*//*Label 1702*/ 95139, // Rule ID 501 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_undefined,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_65535,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2762:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) => (t2UDF (imm:{ *:[i32] }):$imm16)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UDF,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm16
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 501,
GIR_Done,
// Label 1702: @95139
GIM_Try, /*On fail goto*//*Label 1703*/ 95186, // Rule ID 575 //
GIM_CheckFeatures, GIFBS_HasDB_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dmb,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2335:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DMB (imm:{ *:[i32] }):$opt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2DMB,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 575,
GIR_Done,
// Label 1703: @95186
GIM_Try, /*On fail goto*//*Label 1704*/ 95233, // Rule ID 576 //
GIM_CheckFeatures, GIFBS_HasDB_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dsb,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2336:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DSB (imm:{ *:[i32] }):$opt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2DSB,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 576,
GIR_Done,
// Label 1704: @95233
GIM_Try, /*On fail goto*//*Label 1705*/ 95280, // Rule ID 577 //
GIM_CheckFeatures, GIFBS_HasDB_IsThumb,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_isb,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2340:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2ISB (imm:{ *:[i32] }):$opt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ISB,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 577,
GIR_Done,
// Label 1705: @95280
GIM_Try, /*On fail goto*//*Label 1706*/ 95327, // Rule ID 595 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_hint,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_239,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2339:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) => (t2HINT (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2HINT,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 595,
GIR_Done,
// Label 1706: @95327
GIM_Try, /*On fail goto*//*Label 1707*/ 95374, // Rule ID 596 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_dbg,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm0_15,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2334:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) => (t2DBG (imm:{ *:[i32] }):$opt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2DBG,
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // opt
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 596,
GIR_Done,
// Label 1707: @95374
GIM_Try, /*On fail goto*//*Label 1708*/ 95413, // Rule ID 741 //
GIM_CheckFeatures, GIFBS_HasFPRegs,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_get_fpscr,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2337:{ *:[iPTR] }) => (VMRS:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMRS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rt
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 741,
GIR_Done,
// Label 1708: @95413
GIM_Try, /*On fail goto*//*Label 1709*/ 95452, // Rule ID 742 //
GIM_CheckFeatures, GIFBS_HasFPRegs,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_set_fpscr,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_void 2706:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rt) => (VMSR GPRnopc:{ *:[i32] }:$Rt)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMSR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rt
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 742,
GIR_Done,
// Label 1709: @95452
GIM_Reject,
// Label 1692: @95453
GIM_Try, /*On fail goto*//*Label 1710*/ 95500, // Rule ID 620 //
GIM_CheckFeatures, GIFBS_HasLOB_HasV8_1MMainline_IsThumb2,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::start_loop_iterations,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRlrRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 288:{ *:[iPTR] }, rGPR:{ *:[i32] }:$tc) => (t2DoLoopStart:{ *:[i32] } rGPR:{ *:[i32] }:$tc)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2DoLoopStart,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // X
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // tc
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 620,
GIR_Done,
// Label 1710: @95500
GIM_Try, /*On fail goto*//*Label 1711*/ 97665,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/4,
GIM_Try, /*On fail goto*//*Label 1712*/ 95564, // Rule ID 5151 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_base,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_w_chain:{ *:[v4i32] } 2470:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset) => (MVE_VLDRWU32_qi:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_qi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5151,
GIR_Done,
// Label 1712: @95564
GIM_Try, /*On fail goto*//*Label 1713*/ 95623, // Rule ID 5157 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_base,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_w_chain:{ *:[v4f32] } 2470:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset) => (MVE_VLDRWU32_qi:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_qi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5157,
GIR_Done,
// Label 1713: @95623
GIM_Try, /*On fail goto*//*Label 1714*/ 95682, // Rule ID 5159 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_base,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_w_chain:{ *:[v2i64] } 2470:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset) => (MVE_VLDRDU64_qi:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_qi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5159,
GIR_Done,
// Label 1714: @95682
GIM_Try, /*On fail goto*//*Label 1715*/ 95741, // Rule ID 5161 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_base,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_w_chain:{ *:[v2f64] } 2470:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset) => (MVE_VLDRDU64_qi:{ *:[v2f64] } MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_qi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5161,
GIR_Done,
// Label 1715: @95741
GIM_Try, /*On fail goto*//*Label 1716*/ 95790, // Rule ID 1764 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_space,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
// MIs[0] size
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2737:{ *:[iPTR] }, (timm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn) => (SPACE:{ *:[i32] } (timm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SPACE,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // size
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rn
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1764,
GIR_Done,
// Label 1716: @95790
GIM_Try, /*On fail goto*//*Label 1717*/ 95849, // Rule ID 5153 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_base,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2544:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4i32] }:$data) => (MVE_VSTRW32_qi MQPR:{ *:[v4i32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRW32_qi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5153,
GIR_Done,
// Label 1717: @95849
GIM_Try, /*On fail goto*//*Label 1718*/ 95908, // Rule ID 5163 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_base,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2544:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4f32] }:$data) => (MVE_VSTRW32_qi MQPR:{ *:[v4f32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRW32_qi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5163,
GIR_Done,
// Label 1718: @95908
GIM_Try, /*On fail goto*//*Label 1719*/ 95967, // Rule ID 5167 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_base,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2544:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2i64] }:$data) => (MVE_VSTRD64_qi MQPR:{ *:[v2i64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRD64_qi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5167,
GIR_Done,
// Label 1719: @95967
GIM_Try, /*On fail goto*//*Label 1720*/ 96026, // Rule ID 5171 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_base,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_void 2544:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2f64] }:$data) => (MVE_VSTRD64_qi MQPR:{ *:[v2f64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRD64_qi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5171,
GIR_Done,
// Label 1720: @96026
GIM_Try, /*On fail goto*//*Label 1721*/ 96089, // Rule ID 3 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sel,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2705:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SEL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3,
GIR_Done,
// Label 1721: @96089
GIM_Try, /*On fail goto*//*Label 1722*/ 96152, // Rule ID 121 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2704:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 121,
GIR_Done,
// Label 1722: @96152
GIM_Try, /*On fail goto*//*Label 1723*/ 96215, // Rule ID 122 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2702:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 122,
GIR_Done,
// Label 1723: @96215
GIM_Try, /*On fail goto*//*Label 1724*/ 96278, // Rule ID 123 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2703:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 123,
GIR_Done,
// Label 1724: @96278
GIM_Try, /*On fail goto*//*Label 1725*/ 96341, // Rule ID 124 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2740:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 124,
GIR_Done,
// Label 1725: @96341
GIM_Try, /*On fail goto*//*Label 1726*/ 96404, // Rule ID 125 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2741:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 125,
GIR_Done,
// Label 1726: @96404
GIM_Try, /*On fail goto*//*Label 1727*/ 96467, // Rule ID 126 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2742:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (SSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 126,
GIR_Done,
// Label 1727: @96467
GIM_Try, /*On fail goto*//*Label 1728*/ 96530, // Rule ID 127 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2755:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 127,
GIR_Done,
// Label 1728: @96530
GIM_Try, /*On fail goto*//*Label 1729*/ 96593, // Rule ID 128 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2753:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 128,
GIR_Done,
// Label 1729: @96593
GIM_Try, /*On fail goto*//*Label 1730*/ 96656, // Rule ID 129 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2754:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (UADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::UADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 129,
GIR_Done,
// Label 1730: @96656
GIM_Try, /*On fail goto*//*Label 1731*/ 96719, // Rule ID 130 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2773:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 130,
GIR_Done,
// Label 1731: @96719
GIM_Try, /*On fail goto*//*Label 1732*/ 96782, // Rule ID 131 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2774:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 131,
GIR_Done,
// Label 1732: @96782
GIM_Try, /*On fail goto*//*Label 1733*/ 96845, // Rule ID 132 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2775:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) => (USUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::USUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 132,
GIR_Done,
// Label 1733: @96845
GIM_Try, /*On fail goto*//*Label 1734*/ 96908, // Rule ID 438 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sel,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2705:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (t2SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SEL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 438,
GIR_Done,
// Label 1734: @96908
GIM_Try, /*On fail goto*//*Label 1735*/ 96971, // Rule ID 451 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2704:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 451,
GIR_Done,
// Label 1735: @96971
GIM_Try, /*On fail goto*//*Label 1736*/ 97034, // Rule ID 452 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2702:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 452,
GIR_Done,
// Label 1736: @97034
GIM_Try, /*On fail goto*//*Label 1737*/ 97097, // Rule ID 453 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_sadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2703:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 453,
GIR_Done,
// Label 1737: @97097
GIM_Try, /*On fail goto*//*Label 1738*/ 97160, // Rule ID 454 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2740:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SSAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 454,
GIR_Done,
// Label 1738: @97160
GIM_Try, /*On fail goto*//*Label 1739*/ 97223, // Rule ID 455 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2741:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SSUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 455,
GIR_Done,
// Label 1739: @97223
GIM_Try, /*On fail goto*//*Label 1740*/ 97286, // Rule ID 456 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_ssub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2742:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SSUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 456,
GIR_Done,
// Label 1740: @97286
GIM_Try, /*On fail goto*//*Label 1741*/ 97349, // Rule ID 457 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uasx,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2755:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UASX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 457,
GIR_Done,
// Label 1741: @97349
GIM_Try, /*On fail goto*//*Label 1742*/ 97412, // Rule ID 458 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uadd16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2753:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UADD16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 458,
GIR_Done,
// Label 1742: @97412
GIM_Try, /*On fail goto*//*Label 1743*/ 97475, // Rule ID 459 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_uadd8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2754:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2UADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2UADD8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 459,
GIR_Done,
// Label 1743: @97475
GIM_Try, /*On fail goto*//*Label 1744*/ 97538, // Rule ID 460 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usax,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2773:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USAX,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 460,
GIR_Done,
// Label 1744: @97538
GIM_Try, /*On fail goto*//*Label 1745*/ 97601, // Rule ID 461 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usub16,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2774:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USUB16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 461,
GIR_Done,
// Label 1745: @97601
GIM_Try, /*On fail goto*//*Label 1746*/ 97664, // Rule ID 462 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_usub8,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::rGPRRegClassID,
// (intrinsic_w_chain:{ *:[i32] } 2775:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2USUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2USUB8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 462,
GIR_Done,
// Label 1746: @97664
GIM_Reject,
// Label 1711: @97665
GIM_Try, /*On fail goto*//*Label 1747*/ 97943,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/5,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vstr_scatter_base_wb,
GIM_Try, /*On fail goto*//*Label 1748*/ 97741, // Rule ID 5155 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_w_chain:{ *:[v4i32] } 2546:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4i32] }:$data) => (MVE_VSTRW32_qi_pre:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRW32_qi_pre,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wb
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5155,
GIR_Done,
// Label 1748: @97741
GIM_Try, /*On fail goto*//*Label 1749*/ 97808, // Rule ID 5165 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_w_chain:{ *:[v4i32] } 2546:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4f32] }:$data) => (MVE_VSTRW32_qi_pre:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRW32_qi_pre,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wb
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5165,
GIR_Done,
// Label 1749: @97808
GIM_Try, /*On fail goto*//*Label 1750*/ 97875, // Rule ID 5169 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_w_chain:{ *:[v2i64] } 2546:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2i64] }:$data) => (MVE_VSTRD64_qi_pre:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRD64_qi_pre,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wb
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5169,
GIR_Done,
// Label 1750: @97875
GIM_Try, /*On fail goto*//*Label 1751*/ 97942, // Rule ID 5173 //
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (intrinsic_w_chain:{ *:[v2i64] } 2546:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2f64] }:$data) => (MVE_VSTRD64_qi_pre:{ *:[v2i64] } MQPR:{ *:[v2f64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRD64_qi_pre,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // wb
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // addr
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // offset
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5173,
GIR_Done,
// Label 1751: @97942
GIM_Reject,
// Label 1747: @97943
GIM_Try, /*On fail goto*//*Label 1752*/ 99280,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/6,
GIM_Try, /*On fail goto*//*Label 1753*/ 98018, // Rule ID 5043 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRH16_rq_u MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRH16_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5043,
GIR_Done,
// Label 1753: @98018
GIM_Try, /*On fail goto*//*Label 1754*/ 98088, // Rule ID 5044 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSTRH16_rq MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRH16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5044,
GIR_Done,
// Label 1754: @98088
GIM_Try, /*On fail goto*//*Label 1755*/ 98158, // Rule ID 5047 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, MQPR:{ *:[v16i8] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRB8_rq MQPR:{ *:[v16i8] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRB8_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5047,
GIR_Done,
// Label 1755: @98158
GIM_Try, /*On fail goto*//*Label 1756*/ 98228, // Rule ID 5127 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRB16_rq MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRB16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5127,
GIR_Done,
// Label 1756: @98228
GIM_Try, /*On fail goto*//*Label 1757*/ 98298, // Rule ID 5129 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRB32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRB32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5129,
GIR_Done,
// Label 1757: @98298
GIM_Try, /*On fail goto*//*Label 1758*/ 98368, // Rule ID 5131 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8f16] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRH16_rq_u MQPR:{ *:[v8f16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRH16_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5131,
GIR_Done,
// Label 1758: @98368
GIM_Try, /*On fail goto*//*Label 1759*/ 98438, // Rule ID 5132 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8f16] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSTRH16_rq MQPR:{ *:[v8f16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRH16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5132,
GIR_Done,
// Label 1759: @98438
GIM_Try, /*On fail goto*//*Label 1760*/ 98508, // Rule ID 5135 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRH32_rq_u MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRH32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5135,
GIR_Done,
// Label 1760: @98508
GIM_Try, /*On fail goto*//*Label 1761*/ 98578, // Rule ID 5136 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VSTRH32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRH32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5136,
GIR_Done,
// Label 1761: @98578
GIM_Try, /*On fail goto*//*Label 1762*/ 98648, // Rule ID 5139 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 32:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRW32_rq_u MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRW32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5139,
GIR_Done,
// Label 1762: @98648
GIM_Try, /*On fail goto*//*Label 1763*/ 98718, // Rule ID 5140 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 2,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 32:{ *:[i32] }, 2:{ *:[i32] }) => (MVE_VSTRW32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRW32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5140,
GIR_Done,
// Label 1763: @98718
GIM_Try, /*On fail goto*//*Label 1764*/ 98788, // Rule ID 5143 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4f32] }:$data, 32:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRW32_rq_u MQPR:{ *:[v4f32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRW32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5143,
GIR_Done,
// Label 1764: @98788
GIM_Try, /*On fail goto*//*Label 1765*/ 98858, // Rule ID 5144 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 2,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4f32] }:$data, 32:{ *:[i32] }, 2:{ *:[i32] }) => (MVE_VSTRW32_rq MQPR:{ *:[v4f32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRW32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5144,
GIR_Done,
// Label 1765: @98858
GIM_Try, /*On fail goto*//*Label 1766*/ 98928, // Rule ID 5147 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, MQPR:{ *:[v2i64] }:$data, 64:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VSTRD64_rq_u MQPR:{ *:[v2i64] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRD64_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5147,
GIR_Done,
// Label 1766: @98928
GIM_Try, /*On fail goto*//*Label 1767*/ 98998, // Rule ID 5148 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mve_vstr_scatter_offset,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 3,
// (intrinsic_void 2548:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, MQPR:{ *:[v2i64] }:$data, 64:{ *:[i32] }, 3:{ *:[i32] }) => (MVE_VSTRD64_rq MQPR:{ *:[v2i64] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSTRD64_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // data
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5148,
GIR_Done,
// Label 1767: @98998
GIM_Try, /*On fail goto*//*Label 1768*/ 99070, // Rule ID 265 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcrr,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRnopcRegClassID,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// (intrinsic_void 2351:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) => (MCRR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MCRR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Rt2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 265,
GIR_Done,
// Label 1768: @99070
GIM_Try, /*On fail goto*//*Label 1769*/ 99135, // Rule ID 266 //
GIM_CheckFeatures, GIFBS_IsARM_PreV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcrr2,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRnopcRegClassID,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// (intrinsic_void 2352:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) => (MCRR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MCRR2,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Rt2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 266,
GIR_Done,
// Label 1769: @99135
GIM_Try, /*On fail goto*//*Label 1770*/ 99207, // Rule ID 612 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcrr,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// (intrinsic_void 2351:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) => (t2MCRR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MCRR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Rt2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 612,
GIR_Done,
// Label 1770: @99207
GIM_Try, /*On fail goto*//*Label 1771*/ 99279, // Rule ID 613 //
GIM_CheckFeatures, GIFBS_IsThumb2_PreV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcrr2,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/4, /*RC*/ARM::GPRRegClassID,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// (intrinsic_void 2352:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) => (t2MCRR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MCRR2,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // Rt2
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 613,
GIR_Done,
// Label 1771: @99279
GIM_Reject,
// Label 1752: @99280
GIM_Try, /*On fail goto*//*Label 1772*/ 103120,
GIM_CheckNumOperands, /*MI*/0, /*Expected*/7,
GIM_Try, /*On fail goto*//*Label 1773*/ 99354, // Rule ID 253 //
GIM_CheckFeatures, GIFBS_IsARM_PreV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_cdp,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
// MIs[0] CRd
GIM_CheckIsImm, /*MI*/0, /*Op*/3,
// MIs[0] CRn
GIM_CheckIsImm, /*MI*/0, /*Op*/4,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// MIs[0] opc2
GIM_CheckIsImm, /*MI*/0, /*Op*/6,
// (intrinsic_void 2319:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (CDP (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CDP,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // CRd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // CRn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // opc2
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 253,
GIR_Done,
// Label 1773: @99354
GIM_Try, /*On fail goto*//*Label 1774*/ 99416, // Rule ID 254 //
GIM_CheckFeatures, GIFBS_IsARM_PreV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_cdp2,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
// MIs[0] CRd
GIM_CheckIsImm, /*MI*/0, /*Op*/3,
// MIs[0] CRn
GIM_CheckIsImm, /*MI*/0, /*Op*/4,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// MIs[0] opc2
GIM_CheckIsImm, /*MI*/0, /*Op*/6,
// (intrinsic_void 2320:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (CDP2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CDP2,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // CRd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // CRn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // opc2
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 254,
GIR_Done,
// Label 1774: @99416
GIM_Try, /*On fail goto*//*Label 1775*/ 99485, // Rule ID 614 //
GIM_CheckFeatures, GIFBS_IsThumb2_PreV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_cdp,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
// MIs[0] CRd
GIM_CheckIsImm, /*MI*/0, /*Op*/3,
// MIs[0] CRn
GIM_CheckIsImm, /*MI*/0, /*Op*/4,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// MIs[0] opc2
GIM_CheckIsImm, /*MI*/0, /*Op*/6,
// (intrinsic_void 2319:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (t2CDP (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CDP,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // CRd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // CRn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // opc2
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 614,
GIR_Done,
// Label 1775: @99485
GIM_Try, /*On fail goto*//*Label 1776*/ 99554, // Rule ID 615 //
GIM_CheckFeatures, GIFBS_IsThumb2_PreV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_cdp2,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
// MIs[0] CRd
GIM_CheckIsImm, /*MI*/0, /*Op*/3,
// MIs[0] CRn
GIM_CheckIsImm, /*MI*/0, /*Op*/4,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// MIs[0] opc2
GIM_CheckIsImm, /*MI*/0, /*Op*/6,
// (intrinsic_void 2320:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (t2CDP2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CDP2,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // CRd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // CRn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // opc2
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 615,
GIR_Done,
// Label 1776: @99554
GIM_Try, /*On fail goto*//*Label 1777*/ 99632, // Rule ID 5037 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5037,
GIR_Done,
// Label 1777: @99632
GIM_Try, /*On fail goto*//*Label 1778*/ 99710, // Rule ID 5038 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5038,
GIR_Done,
// Label 1778: @99710
GIM_Try, /*On fail goto*//*Label 1779*/ 99788, // Rule ID 5041 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v16i8] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRBU8_rq:{ *:[v16i8] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRBU8_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5041,
GIR_Done,
// Label 1779: @99788
GIM_Try, /*On fail goto*//*Label 1780*/ 99866, // Rule ID 5049 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v16i8] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRBU8_rq:{ *:[v16i8] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRBU8_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5049,
GIR_Done,
// Label 1780: @99866
GIM_Try, /*On fail goto*//*Label 1781*/ 99944, // Rule ID 5051 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRBU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRBU16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5051,
GIR_Done,
// Label 1781: @99944
GIM_Try, /*On fail goto*//*Label 1782*/ 100022, // Rule ID 5053 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRBS16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRBS16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5053,
GIR_Done,
// Label 1782: @100022
GIM_Try, /*On fail goto*//*Label 1783*/ 100100, // Rule ID 5055 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRBU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRBU32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5055,
GIR_Done,
// Label 1783: @100100
GIM_Try, /*On fail goto*//*Label 1784*/ 100178, // Rule ID 5057 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 8,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRBS32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRBS32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5057,
GIR_Done,
// Label 1784: @100178
GIM_Try, /*On fail goto*//*Label 1785*/ 100256, // Rule ID 5059 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5059,
GIR_Done,
// Label 1785: @100256
GIM_Try, /*On fail goto*//*Label 1786*/ 100334, // Rule ID 5060 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5060,
GIR_Done,
// Label 1786: @100334
GIM_Try, /*On fail goto*//*Label 1787*/ 100412, // Rule ID 5063 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5063,
GIR_Done,
// Label 1787: @100412
GIM_Try, /*On fail goto*//*Label 1788*/ 100490, // Rule ID 5064 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5064,
GIR_Done,
// Label 1788: @100490
GIM_Try, /*On fail goto*//*Label 1789*/ 100568, // Rule ID 5067 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5067,
GIR_Done,
// Label 1789: @100568
GIM_Try, /*On fail goto*//*Label 1790*/ 100646, // Rule ID 5068 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v8i16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5068,
GIR_Done,
// Label 1790: @100646
GIM_Try, /*On fail goto*//*Label 1791*/ 100724, // Rule ID 5071 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v8f16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5071,
GIR_Done,
// Label 1791: @100724
GIM_Try, /*On fail goto*//*Label 1792*/ 100802, // Rule ID 5072 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v8f16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5072,
GIR_Done,
// Label 1792: @100802
GIM_Try, /*On fail goto*//*Label 1793*/ 100880, // Rule ID 5075 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v8f16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq_u:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5075,
GIR_Done,
// Label 1793: @100880
GIM_Try, /*On fail goto*//*Label 1794*/ 100958, // Rule ID 5076 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v8f16] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU16_rq:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU16_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5076,
GIR_Done,
// Label 1794: @100958
GIM_Try, /*On fail goto*//*Label 1795*/ 101036, // Rule ID 5079 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5079,
GIR_Done,
// Label 1795: @101036
GIM_Try, /*On fail goto*//*Label 1796*/ 101114, // Rule ID 5080 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRHU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHU32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5080,
GIR_Done,
// Label 1796: @101114
GIM_Try, /*On fail goto*//*Label 1797*/ 101192, // Rule ID 5083 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHS32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHS32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5083,
GIR_Done,
// Label 1797: @101192
GIM_Try, /*On fail goto*//*Label 1798*/ 101270, // Rule ID 5084 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 16,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 1,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRHS32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRHS32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5084,
GIR_Done,
// Label 1798: @101270
GIM_Try, /*On fail goto*//*Label 1799*/ 101348, // Rule ID 5087 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5087,
GIR_Done,
// Label 1799: @101348
GIM_Try, /*On fail goto*//*Label 1800*/ 101426, // Rule ID 5088 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 2,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5088,
GIR_Done,
// Label 1800: @101426
GIM_Try, /*On fail goto*//*Label 1801*/ 101504, // Rule ID 5091 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5091,
GIR_Done,
// Label 1801: @101504
GIM_Try, /*On fail goto*//*Label 1802*/ 101582, // Rule ID 5092 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 2,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5092,
GIR_Done,
// Label 1802: @101582
GIM_Try, /*On fail goto*//*Label 1803*/ 101660, // Rule ID 5095 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5095,
GIR_Done,
// Label 1803: @101660
GIM_Try, /*On fail goto*//*Label 1804*/ 101738, // Rule ID 5096 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 2,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5096,
GIR_Done,
// Label 1804: @101738
GIM_Try, /*On fail goto*//*Label 1805*/ 101816, // Rule ID 5099 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5099,
GIR_Done,
// Label 1805: @101816
GIM_Try, /*On fail goto*//*Label 1806*/ 101894, // Rule ID 5100 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 2,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4i32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5100,
GIR_Done,
// Label 1806: @101894
GIM_Try, /*On fail goto*//*Label 1807*/ 101972, // Rule ID 5103 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4f32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5103,
GIR_Done,
// Label 1807: @101972
GIM_Try, /*On fail goto*//*Label 1808*/ 102050, // Rule ID 5104 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 2,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v4f32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5104,
GIR_Done,
// Label 1808: @102050
GIM_Try, /*On fail goto*//*Label 1809*/ 102128, // Rule ID 5107 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4f32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq_u:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5107,
GIR_Done,
// Label 1809: @102128
GIM_Try, /*On fail goto*//*Label 1810*/ 102206, // Rule ID 5108 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 32,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 2,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v4f32] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRWU32_rq:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRWU32_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5108,
GIR_Done,
// Label 1810: @102206
GIM_Try, /*On fail goto*//*Label 1811*/ 102284, // Rule ID 5111 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v2i64] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5111,
GIR_Done,
// Label 1811: @102284
GIM_Try, /*On fail goto*//*Label 1812*/ 102362, // Rule ID 5112 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 3,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v2i64] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5112,
GIR_Done,
// Label 1812: @102362
GIM_Try, /*On fail goto*//*Label 1813*/ 102440, // Rule ID 5115 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v2i64] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5115,
GIR_Done,
// Label 1813: @102440
GIM_Try, /*On fail goto*//*Label 1814*/ 102518, // Rule ID 5116 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 3,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v2i64] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5116,
GIR_Done,
// Label 1814: @102518
GIM_Try, /*On fail goto*//*Label 1815*/ 102596, // Rule ID 5119 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v2i64] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5119,
GIR_Done,
// Label 1815: @102596
GIM_Try, /*On fail goto*//*Label 1816*/ 102674, // Rule ID 5120 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 3,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 0,
// (intrinsic_w_chain:{ *:[v2i64] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 0:{ *:[i32] }) => (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5120,
GIR_Done,
// Label 1816: @102674
GIM_Try, /*On fail goto*//*Label 1817*/ 102752, // Rule ID 5123 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 0,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v2i64] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_rq_u,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5123,
GIR_Done,
// Label 1817: @102752
GIM_Try, /*On fail goto*//*Label 1818*/ 102830, // Rule ID 5124 //
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, Intrinsic::arm_mve_vldr_gather_offset,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/4, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/5, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/6, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
// MIs[0] base
GIM_CheckPointerToAny, /*MI*/0, /*Op*/2, /*SizeInBits*/32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::MQPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/4, 64,
GIM_CheckConstantInt, /*MI*/0, /*Op*/5, 3,
GIM_CheckConstantInt, /*MI*/0, /*Op*/6, 1,
// (intrinsic_w_chain:{ *:[v2i64] } 2474:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 1:{ *:[i32] }) => (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VLDRDU64_rq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // base
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // offsets
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5124,
GIR_Done,
// Label 1818: @102830
GIM_Try, /*On fail goto*//*Label 1819*/ 102904, // Rule ID 263 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcr,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// MIs[0] CRn
GIM_CheckIsImm, /*MI*/0, /*Op*/4,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// MIs[0] opc2
GIM_CheckIsImm, /*MI*/0, /*Op*/6,
// (intrinsic_void 2349:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (MCR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MCR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // CRn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // opc2
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 263,
GIR_Done,
// Label 1819: @102904
GIM_Try, /*On fail goto*//*Label 1820*/ 102971, // Rule ID 264 //
GIM_CheckFeatures, GIFBS_IsARM_PreV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcr2,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// MIs[0] CRn
GIM_CheckIsImm, /*MI*/0, /*Op*/4,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// MIs[0] opc2
GIM_CheckIsImm, /*MI*/0, /*Op*/6,
// (intrinsic_void 2350:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (MCR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MCR2,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // CRn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // opc2
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 264,
GIR_Done,
// Label 1820: @102971
GIM_Try, /*On fail goto*//*Label 1821*/ 103045, // Rule ID 610 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcr,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// MIs[0] CRn
GIM_CheckIsImm, /*MI*/0, /*Op*/4,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// MIs[0] opc2
GIM_CheckIsImm, /*MI*/0, /*Op*/6,
// (intrinsic_void 2349:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (t2MCR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MCR,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // CRn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // opc2
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 610,
GIR_Done,
// Label 1821: @103045
GIM_Try, /*On fail goto*//*Label 1822*/ 103119, // Rule ID 611 //
GIM_CheckFeatures, GIFBS_IsThumb2_PreV8,
GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::arm_mcr2,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
// MIs[0] cop
GIM_CheckIsImm, /*MI*/0, /*Op*/1,
// MIs[0] opc1
GIM_CheckIsImm, /*MI*/0, /*Op*/2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::GPRRegClassID,
// MIs[0] CRn
GIM_CheckIsImm, /*MI*/0, /*Op*/4,
// MIs[0] CRm
GIM_CheckIsImm, /*MI*/0, /*Op*/5,
// MIs[0] opc2
GIM_CheckIsImm, /*MI*/0, /*Op*/6,
// (intrinsic_void 2350:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) => (t2MCR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MCR2,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // cop
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // opc1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Rt
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/4, // CRn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/5, // CRm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/6, // opc2
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 611,
GIR_Done,
// Label 1822: @103119
GIM_Reject,
// Label 1772: @103120
GIM_Reject,
// Label 16: @103121
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/5, 13, /*)*//*default:*//*Label 1826*/ 103255,
/*GILLT_v2s64*//*Label 1823*/ 103135, 0, 0,
/*GILLT_v4s32*//*Label 1824*/ 103175, 0, 0, 0,
/*GILLT_v8s16*//*Label 1825*/ 103215,
// Label 1823: @103135
GIM_Try, /*On fail goto*//*Label 1827*/ 103174, // Rule ID 2676 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2676,
GIR_Done,
// Label 1827: @103174
GIM_Reject,
// Label 1824: @103175
GIM_Try, /*On fail goto*//*Label 1828*/ 103214, // Rule ID 2675 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2675,
GIR_Done,
// Label 1828: @103214
GIM_Reject,
// Label 1825: @103215
GIM_Try, /*On fail goto*//*Label 1829*/ 103254, // Rule ID 2674 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2674,
GIR_Done,
// Label 1829: @103254
GIM_Reject,
// Label 1826: @103255
GIM_Reject,
// Label 17: @103256
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 12, /*)*//*default:*//*Label 1833*/ 103390,
/*GILLT_v2s32*//*Label 1830*/ 103270, 0, 0,
/*GILLT_v4s16*//*Label 1831*/ 103310, 0, 0, 0,
/*GILLT_v8s8*//*Label 1832*/ 103350,
// Label 1830: @103270
GIM_Try, /*On fail goto*//*Label 1834*/ 103309, // Rule ID 1606 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (trunc:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm) => (VMOVNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVNv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1606,
GIR_Done,
// Label 1834: @103309
GIM_Reject,
// Label 1831: @103310
GIM_Try, /*On fail goto*//*Label 1835*/ 103349, // Rule ID 1605 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (trunc:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm) => (VMOVNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVNv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1605,
GIR_Done,
// Label 1835: @103349
GIM_Reject,
// Label 1832: @103350
GIM_Try, /*On fail goto*//*Label 1836*/ 103389, // Rule ID 1604 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (trunc:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm) => (VMOVNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVNv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1604,
GIR_Done,
// Label 1836: @103389
GIM_Reject,
// Label 1833: @103390
GIM_Reject,
// Label 18: @103391
GIM_Try, /*On fail goto*//*Label 1837*/ 103587,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 1838*/ 103434, // Rule ID 411 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_t2_so_imm,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
// MIs[0] Operand 1
// No operand predicates
// (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm => (t2MOVi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MOVi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 411,
GIR_Done,
// Label 1838: @103434
GIM_Try, /*On fail goto*//*Label 1839*/ 103471, // Rule ID 57 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_mod_imm,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
// MIs[0] Operand 1
// No operand predicates
// (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm => (MOVi:{ *:[i32] } (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MOVi,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 57,
GIR_Done,
// Label 1839: @103471
GIM_Try, /*On fail goto*//*Label 1840*/ 103504, // Rule ID 58 //
GIM_CheckFeatures, GIFBS_HasV6T2_IsARM,
GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_imm0_65535,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
// MIs[0] Operand 1
// No operand predicates
// (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm => (MOVi16:{ *:[i32] } (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MOVi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 58,
GIR_Done,
// Label 1840: @103504
GIM_Try, /*On fail goto*//*Label 1841*/ 103530, // Rule ID 275 //
GIM_CheckFeatures, GIFBS_IsARM,
GIM_CheckAPIntImmPredicate, /*MI*/0, /*Predicate*/GIPFP_APInt_Predicate_arm_i32imm,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
// MIs[0] Operand 1
// No operand predicates
// (imm:{ *:[i32] })<<P:Predicate_arm_i32imm>>:$src => (MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MOVi32imm,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 275,
GIR_Done,
// Label 1841: @103530
GIM_Try, /*On fail goto*//*Label 1842*/ 103563, // Rule ID 412 //
GIM_CheckFeatures, GIFBS_HasV8MBaseline_IsThumb,
GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_imm0_65535,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
// MIs[0] Operand 1
// No operand predicates
// (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm => (t2MOVi16:{ *:[i32] } (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MOVi16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 412,
GIR_Done,
// Label 1842: @103563
GIM_Try, /*On fail goto*//*Label 1843*/ 103586, // Rule ID 598 //
GIM_CheckFeatures, GIFBS_IsThumb_UseMovt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
// MIs[0] Operand 1
// No operand predicates
// (imm:{ *:[i32] }):$src => (t2MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2MOVi32imm,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // src
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 598,
GIR_Done,
// Label 1843: @103586
GIM_Reject,
// Label 1837: @103587
GIM_Reject,
// Label 19: @103588
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 3, /*)*//*default:*//*Label 1846*/ 103666,
/*GILLT_s32*//*Label 1844*/ 103596,
/*GILLT_s64*//*Label 1845*/ 103631,
// Label 1844: @103596
GIM_Try, /*On fail goto*//*Label 1847*/ 103630, // Rule ID 744 //
GIM_CheckFeatures, GIFBS_HasVFP3,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
// MIs[0] Operand 1
// No operand predicates
GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIPFP_MI_Predicate_vfp_f32imm,
// (fpimm:{ *:[f32] })<<P:Predicate_vfp_f32imm>><<X:vfp_f32imm_xform>>:$imm => (FCONSTS:{ *:[f32] } (vfp_f32imm_xform:{ *:[f32] } (fpimm:{ *:[f32] }):$imm))
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::FCONSTS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_CustomRenderer, /*InsnID*/0, /*OldInsnID*/0, /*Renderer*/GICR_renderVFPF32Imm, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 744,
GIR_Done,
// Label 1847: @103630
GIM_Reject,
// Label 1845: @103631
GIM_Try, /*On fail goto*//*Label 1848*/ 103665, // Rule ID 743 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP3,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
// MIs[0] Operand 1
// No operand predicates
GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIPFP_MI_Predicate_vfp_f64imm,
// (fpimm:{ *:[f64] })<<P:Predicate_vfp_f64imm>><<X:vfp_f64imm_xform>>:$imm => (FCONSTD:{ *:[f64] } (vfp_f64imm_xform:{ *:[f64] } (fpimm:{ *:[f64] }):$imm))
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::FCONSTD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_CustomRenderer, /*InsnID*/0, /*OldInsnID*/0, /*Renderer*/GICR_renderVFPF64Imm, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 743,
GIR_Done,
// Label 1848: @103665
GIM_Reject,
// Label 1846: @103666
GIM_Reject,
// Label 20: @103667
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/5, 13, /*)*//*default:*//*Label 1852*/ 103801,
/*GILLT_v2s64*//*Label 1849*/ 103681, 0, 0,
/*GILLT_v4s32*//*Label 1850*/ 103721, 0, 0, 0,
/*GILLT_v8s16*//*Label 1851*/ 103761,
// Label 1849: @103681
GIM_Try, /*On fail goto*//*Label 1853*/ 103720, // Rule ID 1618 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1618,
GIR_Done,
// Label 1853: @103720
GIM_Reject,
// Label 1850: @103721
GIM_Try, /*On fail goto*//*Label 1854*/ 103760, // Rule ID 1617 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1617,
GIR_Done,
// Label 1854: @103760
GIM_Reject,
// Label 1851: @103761
GIM_Try, /*On fail goto*//*Label 1855*/ 103800, // Rule ID 1616 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1616,
GIR_Done,
// Label 1855: @103800
GIM_Reject,
// Label 1852: @103801
GIM_Reject,
// Label 21: @103802
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/5, 13, /*)*//*default:*//*Label 1859*/ 104323,
/*GILLT_v2s64*//*Label 1856*/ 103816, 0, 0,
/*GILLT_v4s32*//*Label 1857*/ 103985, 0, 0, 0,
/*GILLT_v8s16*//*Label 1858*/ 104154,
// Label 1856: @103816
GIM_Try, /*On fail goto*//*Label 1860*/ 103984,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 1861*/ 103889, // Rule ID 1193 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 2574:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VABDLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1193,
GIR_Done,
// Label 1861: @103889
GIM_Try, /*On fail goto*//*Label 1862*/ 103952, // Rule ID 1196 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 2575:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VABDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1196,
GIR_Done,
// Label 1862: @103952
GIM_Try, /*On fail goto*//*Label 1863*/ 103983, // Rule ID 1621 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm) => (VMOVLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1621,
GIR_Done,
// Label 1863: @103983
GIM_Reject,
// Label 1860: @103984
GIM_Reject,
// Label 1857: @103985
GIM_Try, /*On fail goto*//*Label 1864*/ 104153,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 1865*/ 104058, // Rule ID 1192 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 2574:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VABDLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1192,
GIR_Done,
// Label 1865: @104058
GIM_Try, /*On fail goto*//*Label 1866*/ 104121, // Rule ID 1195 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 2575:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VABDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1195,
GIR_Done,
// Label 1866: @104121
GIM_Try, /*On fail goto*//*Label 1867*/ 104152, // Rule ID 1620 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm) => (VMOVLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1620,
GIR_Done,
// Label 1867: @104152
GIM_Reject,
// Label 1864: @104153
GIM_Reject,
// Label 1858: @104154
GIM_Try, /*On fail goto*//*Label 1868*/ 104322,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 1869*/ 104227, // Rule ID 1191 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabds,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 2574:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VABDLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1191,
GIR_Done,
// Label 1869: @104227
GIM_Try, /*On fail goto*//*Label 1870*/ 104290, // Rule ID 1194 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vabdu,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 2575:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) => (VABDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1194,
GIR_Done,
// Label 1870: @104290
GIM_Try, /*On fail goto*//*Label 1871*/ 104321, // Rule ID 1619 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm) => (VMOVLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMOVLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1619,
GIR_Done,
// Label 1871: @104321
GIM_Reject,
// Label 1868: @104322
GIM_Reject,
// Label 1859: @104323
GIM_Reject,
// Label 22: @104324
GIM_Try, /*On fail goto*//*Label 1872*/ 104432,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_Try, /*On fail goto*//*Label 1873*/ 104392, // Rule ID 477 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm1_31,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$imm) => (t2LSLri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2LSLri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 477,
GIR_Done,
// Label 1873: @104392
GIM_Try, /*On fail goto*//*Label 1874*/ 104431, // Rule ID 478 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (shl:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2LSLrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2LSLrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 478,
GIR_Done,
// Label 1874: @104431
GIM_Reject,
// Label 1872: @104432
GIM_Reject,
// Label 23: @104433
GIM_Try, /*On fail goto*//*Label 1875*/ 104492, // Rule ID 480 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (srl:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2LSRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2LSRrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 480,
GIR_Done,
// Label 1875: @104492
GIM_Reject,
// Label 24: @104493
GIM_Try, /*On fail goto*//*Label 1876*/ 104710,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 1877*/ 104559, // Rule ID 201 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sra:{ *:[i32] } (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (REVSH:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REVSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 201,
GIR_Done,
// Label 1877: @104559
GIM_Try, /*On fail goto*//*Label 1878*/ 104611, // Rule ID 335 //
GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sra:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (tREVSH:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tREVSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 335,
GIR_Done,
// Label 1878: @104611
GIM_Try, /*On fail goto*//*Label 1879*/ 104709,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_Try, /*On fail goto*//*Label 1880*/ 104665, // Rule ID 545 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (sra:{ *:[i32] } (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (t2REVSH:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REVSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 545,
GIR_Done,
// Label 1880: @104665
GIM_Try, /*On fail goto*//*Label 1881*/ 104708, // Rule ID 482 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (sra:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2ASRrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2ASRrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 482,
GIR_Done,
// Label 1881: @104708
GIM_Reject,
// Label 1879: @104709
GIM_Reject,
// Label 1876: @104710
GIM_Reject,
// Label 25: @104711
GIM_Try, /*On fail goto*//*Label 1882*/ 104978,
GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 1883*/ 104777, // Rule ID 200 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (rotr:{ *:[i32] } (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (REV16:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REV16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 200,
GIR_Done,
// Label 1883: @104777
GIM_Try, /*On fail goto*//*Label 1884*/ 104829, // Rule ID 334 //
GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (rotr:{ *:[i32] } (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (tREV16:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tREV16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 334,
GIR_Done,
// Label 1884: @104829
GIM_Try, /*On fail goto*//*Label 1885*/ 104977,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_Try, /*On fail goto*//*Label 1886*/ 104883, // Rule ID 544 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_BSWAP,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 16,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (rotr:{ *:[i32] } (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm), 16:{ *:[i32] }) => (t2REV16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REV16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 544,
GIR_Done,
// Label 1886: @104883
GIM_Try, /*On fail goto*//*Label 1887*/ 104933, // Rule ID 483 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm1_31,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$imm) => (t2RORri:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] }):$imm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2RORri,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 483,
GIR_Done,
// Label 1887: @104933
GIM_Try, /*On fail goto*//*Label 1888*/ 104976, // Rule ID 484 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2RORrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2RORrr,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 484,
GIR_Done,
// Label 1888: @104976
GIM_Reject,
// Label 1885: @104977
GIM_Reject,
// Label 1882: @104978
GIM_Reject,
// Label 26: @104979
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/8, 16, /*)*//*default:*//*Label 1892*/ 105203,
/*GILLT_v4s32*//*Label 1889*/ 104993, 0, 0, 0,
/*GILLT_v8s16*//*Label 1890*/ 105063, 0, 0,
/*GILLT_v16s8*//*Label 1891*/ 105133,
// Label 1889: @104993
GIM_Try, /*On fail goto*//*Label 1893*/ 105062, // Rule ID 4562 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mulhu:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4562,
GIR_Done,
// Label 1893: @105062
GIM_Reject,
// Label 1890: @105063
GIM_Try, /*On fail goto*//*Label 1894*/ 105132, // Rule ID 4558 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mulhu:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4558,
GIR_Done,
// Label 1894: @105132
GIM_Reject,
// Label 1891: @105133
GIM_Try, /*On fail goto*//*Label 1895*/ 105202, // Rule ID 4554 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mulhu:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4554,
GIR_Done,
// Label 1895: @105202
GIM_Reject,
// Label 1892: @105203
GIM_Reject,
// Label 27: @105204
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 1900*/ 105533,
/*GILLT_s32*//*Label 1896*/ 105225, 0, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 1897*/ 105323, 0, 0, 0,
/*GILLT_v8s16*//*Label 1898*/ 105393, 0, 0,
/*GILLT_v16s8*//*Label 1899*/ 105463,
// Label 1896: @105225
GIM_Try, /*On fail goto*//*Label 1901*/ 105322,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 1902*/ 105278, // Rule ID 178 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) => (SMMUL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::SMMUL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 178,
GIR_Done,
// Label 1902: @105278
GIM_Try, /*On fail goto*//*Label 1903*/ 105321, // Rule ID 514 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (mulhs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) => (t2SMMUL:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2SMMUL,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 514,
GIR_Done,
// Label 1903: @105321
GIM_Reject,
// Label 1901: @105322
GIM_Reject,
// Label 1897: @105323
GIM_Try, /*On fail goto*//*Label 1904*/ 105392, // Rule ID 4550 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mulhs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4550,
GIR_Done,
// Label 1904: @105392
GIM_Reject,
// Label 1898: @105393
GIM_Try, /*On fail goto*//*Label 1905*/ 105462, // Rule ID 4546 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mulhs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4546,
GIR_Done,
// Label 1905: @105462
GIM_Reject,
// Label 1899: @105463
GIM_Try, /*On fail goto*//*Label 1906*/ 105532, // Rule ID 4543 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (mulhs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULHs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4543,
GIR_Done,
// Label 1906: @105532
GIM_Reject,
// Label 1900: @105533
GIM_Reject,
// Label 28: @105534
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/2, 16, /*)*//*default:*//*Label 1915*/ 106162,
/*GILLT_s64*//*Label 1907*/ 105554, 0,
/*GILLT_v2s32*//*Label 1908*/ 105606,
/*GILLT_v2s64*//*Label 1909*/ 105658, 0,
/*GILLT_v4s16*//*Label 1910*/ 105710,
/*GILLT_v4s32*//*Label 1911*/ 105762, 0, 0,
/*GILLT_v8s8*//*Label 1912*/ 105878,
/*GILLT_v8s16*//*Label 1913*/ 105930, 0, 0,
/*GILLT_v16s8*//*Label 1914*/ 106046,
// Label 1907: @105554
GIM_Try, /*On fail goto*//*Label 1916*/ 105605, // Rule ID 846 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (uaddsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQADDuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 846,
GIR_Done,
// Label 1916: @105605
GIM_Reject,
// Label 1908: @105606
GIM_Try, /*On fail goto*//*Label 1917*/ 105657, // Rule ID 841 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (uaddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 841,
GIR_Done,
// Label 1917: @105657
GIM_Reject,
// Label 1909: @105658
GIM_Try, /*On fail goto*//*Label 1918*/ 105709, // Rule ID 847 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (uaddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQADDuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 847,
GIR_Done,
// Label 1918: @105709
GIM_Reject,
// Label 1910: @105710
GIM_Try, /*On fail goto*//*Label 1919*/ 105761, // Rule ID 840 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (uaddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 840,
GIR_Done,
// Label 1919: @105761
GIM_Reject,
// Label 1911: @105762
GIM_Try, /*On fail goto*//*Label 1920*/ 105877,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 1921*/ 105815, // Rule ID 843 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (uaddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 843,
GIR_Done,
// Label 1921: @105815
GIM_Try, /*On fail goto*//*Label 1922*/ 105876, // Rule ID 3621 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (uaddsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQADDu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3621,
GIR_Done,
// Label 1922: @105876
GIM_Reject,
// Label 1920: @105877
GIM_Reject,
// Label 1912: @105878
GIM_Try, /*On fail goto*//*Label 1923*/ 105929, // Rule ID 844 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (uaddsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 844,
GIR_Done,
// Label 1923: @105929
GIM_Reject,
// Label 1913: @105930
GIM_Try, /*On fail goto*//*Label 1924*/ 106045,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 1925*/ 105983, // Rule ID 842 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (uaddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 842,
GIR_Done,
// Label 1925: @105983
GIM_Try, /*On fail goto*//*Label 1926*/ 106044, // Rule ID 3618 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (uaddsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQADDu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3618,
GIR_Done,
// Label 1926: @106044
GIM_Reject,
// Label 1924: @106045
GIM_Reject,
// Label 1914: @106046
GIM_Try, /*On fail goto*//*Label 1927*/ 106161,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 1928*/ 106099, // Rule ID 845 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (uaddsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 845,
GIR_Done,
// Label 1928: @106099
GIM_Try, /*On fail goto*//*Label 1929*/ 106160, // Rule ID 3615 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (uaddsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQADDu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3615,
GIR_Done,
// Label 1929: @106160
GIM_Reject,
// Label 1927: @106161
GIM_Reject,
// Label 1915: @106162
GIM_Reject,
// Label 29: @106163
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 1939*/ 107429,
/*GILLT_s32*//*Label 1930*/ 106184,
/*GILLT_s64*//*Label 1931*/ 106526, 0,
/*GILLT_v2s32*//*Label 1932*/ 106578,
/*GILLT_v2s64*//*Label 1933*/ 106630, 0,
/*GILLT_v4s16*//*Label 1934*/ 106827,
/*GILLT_v4s32*//*Label 1935*/ 106879, 0, 0,
/*GILLT_v8s8*//*Label 1936*/ 107145,
/*GILLT_v8s16*//*Label 1937*/ 107197, 0, 0,
/*GILLT_v16s8*//*Label 1938*/ 107313,
// Label 1930: @106184
GIM_Try, /*On fail goto*//*Label 1940*/ 106525,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 1941*/ 106255, // Rule ID 5754 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SADDSAT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (saddsat:{ *:[i32] } (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Rm) => (QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5754,
GIR_Done,
// Label 1941: @106255
GIM_Try, /*On fail goto*//*Label 1942*/ 106316, // Rule ID 5788 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SADDSAT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (saddsat:{ *:[i32] } (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn), rGPR:{ *:[i32] }:$Rm) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5788,
GIR_Done,
// Label 1942: @106316
GIM_Try, /*On fail goto*//*Label 1943*/ 106377, // Rule ID 1897 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SADDSAT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1897,
GIR_Done,
// Label 1943: @106377
GIM_Try, /*On fail goto*//*Label 1944*/ 106438, // Rule ID 2147 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SADDSAT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2147,
GIR_Done,
// Label 1944: @106438
GIM_Try, /*On fail goto*//*Label 1945*/ 106481, // Rule ID 1895 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (saddsat:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (QADD:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1895,
GIR_Done,
// Label 1945: @106481
GIM_Try, /*On fail goto*//*Label 1946*/ 106524, // Rule ID 2145 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QADD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2145,
GIR_Done,
// Label 1946: @106524
GIM_Reject,
// Label 1940: @106525
GIM_Reject,
// Label 1931: @106526
GIM_Try, /*On fail goto*//*Label 1947*/ 106577, // Rule ID 838 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (saddsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQADDsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 838,
GIR_Done,
// Label 1947: @106577
GIM_Reject,
// Label 1932: @106578
GIM_Try, /*On fail goto*//*Label 1948*/ 106629, // Rule ID 833 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (saddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 833,
GIR_Done,
// Label 1948: @106629
GIM_Reject,
// Label 1933: @106630
GIM_Try, /*On fail goto*//*Label 1949*/ 106826,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 1950*/ 106715, // Rule ID 5845 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (saddsat:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 2637:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$src1) => (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLALv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5845,
GIR_Done,
// Label 1950: @106715
GIM_Try, /*On fail goto*//*Label 1951*/ 106786, // Rule ID 2483 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (saddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 2637:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLALv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2483,
GIR_Done,
// Label 1951: @106786
GIM_Try, /*On fail goto*//*Label 1952*/ 106825, // Rule ID 839 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (saddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQADDsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 839,
GIR_Done,
// Label 1952: @106825
GIM_Reject,
// Label 1949: @106826
GIM_Reject,
// Label 1934: @106827
GIM_Try, /*On fail goto*//*Label 1953*/ 106878, // Rule ID 832 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (saddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 832,
GIR_Done,
// Label 1953: @106878
GIM_Reject,
// Label 1935: @106879
GIM_Try, /*On fail goto*//*Label 1954*/ 107144,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 1955*/ 106964, // Rule ID 5844 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (saddsat:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 2637:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$src1) => (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLALv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5844,
GIR_Done,
// Label 1955: @106964
GIM_Try, /*On fail goto*//*Label 1956*/ 107039, // Rule ID 2482 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 2637:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLALv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2482,
GIR_Done,
// Label 1956: @107039
GIM_Try, /*On fail goto*//*Label 1957*/ 107082, // Rule ID 835 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 835,
GIR_Done,
// Label 1957: @107082
GIM_Try, /*On fail goto*//*Label 1958*/ 107143, // Rule ID 3612 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (saddsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQADDs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3612,
GIR_Done,
// Label 1958: @107143
GIM_Reject,
// Label 1954: @107144
GIM_Reject,
// Label 1936: @107145
GIM_Try, /*On fail goto*//*Label 1959*/ 107196, // Rule ID 836 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (saddsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 836,
GIR_Done,
// Label 1959: @107196
GIM_Reject,
// Label 1937: @107197
GIM_Try, /*On fail goto*//*Label 1960*/ 107312,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 1961*/ 107250, // Rule ID 834 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (saddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 834,
GIR_Done,
// Label 1961: @107250
GIM_Try, /*On fail goto*//*Label 1962*/ 107311, // Rule ID 3609 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (saddsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQADDs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3609,
GIR_Done,
// Label 1962: @107311
GIM_Reject,
// Label 1960: @107312
GIM_Reject,
// Label 1938: @107313
GIM_Try, /*On fail goto*//*Label 1963*/ 107428,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 1964*/ 107366, // Rule ID 837 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (saddsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQADDsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 837,
GIR_Done,
// Label 1964: @107366
GIM_Try, /*On fail goto*//*Label 1965*/ 107427, // Rule ID 3606 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (saddsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQADDs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3606,
GIR_Done,
// Label 1965: @107427
GIM_Reject,
// Label 1963: @107428
GIM_Reject,
// Label 1939: @107429
GIM_Reject,
// Label 30: @107430
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/2, 16, /*)*//*default:*//*Label 1974*/ 108058,
/*GILLT_s64*//*Label 1966*/ 107450, 0,
/*GILLT_v2s32*//*Label 1967*/ 107502,
/*GILLT_v2s64*//*Label 1968*/ 107554, 0,
/*GILLT_v4s16*//*Label 1969*/ 107606,
/*GILLT_v4s32*//*Label 1970*/ 107658, 0, 0,
/*GILLT_v8s8*//*Label 1971*/ 107774,
/*GILLT_v8s16*//*Label 1972*/ 107826, 0, 0,
/*GILLT_v16s8*//*Label 1973*/ 107942,
// Label 1966: @107450
GIM_Try, /*On fail goto*//*Label 1975*/ 107501, // Rule ID 1038 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (usubsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQSUBuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1038,
GIR_Done,
// Label 1975: @107501
GIM_Reject,
// Label 1967: @107502
GIM_Try, /*On fail goto*//*Label 1976*/ 107553, // Rule ID 1033 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (usubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1033,
GIR_Done,
// Label 1976: @107553
GIM_Reject,
// Label 1968: @107554
GIM_Try, /*On fail goto*//*Label 1977*/ 107605, // Rule ID 1039 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (usubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQSUBuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1039,
GIR_Done,
// Label 1977: @107605
GIM_Reject,
// Label 1969: @107606
GIM_Try, /*On fail goto*//*Label 1978*/ 107657, // Rule ID 1032 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (usubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1032,
GIR_Done,
// Label 1978: @107657
GIM_Reject,
// Label 1970: @107658
GIM_Try, /*On fail goto*//*Label 1979*/ 107773,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 1980*/ 107711, // Rule ID 1035 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (usubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1035,
GIR_Done,
// Label 1980: @107711
GIM_Try, /*On fail goto*//*Label 1981*/ 107772, // Rule ID 3639 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (usubsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQSUBu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSUBu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3639,
GIR_Done,
// Label 1981: @107772
GIM_Reject,
// Label 1979: @107773
GIM_Reject,
// Label 1971: @107774
GIM_Try, /*On fail goto*//*Label 1982*/ 107825, // Rule ID 1036 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (usubsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1036,
GIR_Done,
// Label 1982: @107825
GIM_Reject,
// Label 1972: @107826
GIM_Try, /*On fail goto*//*Label 1983*/ 107941,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 1984*/ 107879, // Rule ID 1034 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (usubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1034,
GIR_Done,
// Label 1984: @107879
GIM_Try, /*On fail goto*//*Label 1985*/ 107940, // Rule ID 3636 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (usubsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQSUBu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSUBu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3636,
GIR_Done,
// Label 1985: @107940
GIM_Reject,
// Label 1983: @107941
GIM_Reject,
// Label 1973: @107942
GIM_Try, /*On fail goto*//*Label 1986*/ 108057,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 1987*/ 107995, // Rule ID 1037 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (usubsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1037,
GIR_Done,
// Label 1987: @107995
GIM_Try, /*On fail goto*//*Label 1988*/ 108056, // Rule ID 3633 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (usubsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQSUBu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSUBu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3633,
GIR_Done,
// Label 1988: @108056
GIM_Reject,
// Label 1986: @108057
GIM_Reject,
// Label 1974: @108058
GIM_Reject,
// Label 31: @108059
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 1998*/ 109053,
/*GILLT_s32*//*Label 1989*/ 108080,
/*GILLT_s64*//*Label 1990*/ 108300, 0,
/*GILLT_v2s32*//*Label 1991*/ 108352,
/*GILLT_v2s64*//*Label 1992*/ 108404, 0,
/*GILLT_v4s16*//*Label 1993*/ 108526,
/*GILLT_v4s32*//*Label 1994*/ 108578, 0, 0,
/*GILLT_v8s8*//*Label 1995*/ 108769,
/*GILLT_v8s16*//*Label 1996*/ 108821, 0, 0,
/*GILLT_v16s8*//*Label 1997*/ 108937,
// Label 1989: @108080
GIM_Try, /*On fail goto*//*Label 1999*/ 108299,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2000*/ 108151, // Rule ID 1898 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SADDSAT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QDSUB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1898,
GIR_Done,
// Label 2000: @108151
GIM_Try, /*On fail goto*//*Label 2001*/ 108212, // Rule ID 2148 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SADDSAT,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// MIs[1] Rn
GIM_CheckIsSameOperand, /*MI*/1, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) => (t2QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QDSUB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2148,
GIR_Done,
// Label 2001: @108212
GIM_Try, /*On fail goto*//*Label 2002*/ 108255, // Rule ID 1896 //
GIM_CheckFeatures, GIFBS_HasV5TE_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRnopcRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::GPRRegClassID,
// (ssubsat:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) => (QSUB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::QSUB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1896,
GIR_Done,
// Label 2002: @108255
GIM_Try, /*On fail goto*//*Label 2003*/ 108298, // Rule ID 2146 //
GIM_CheckFeatures, GIFBS_HasDSP_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::rGPRRegClassID,
// (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) => (t2QSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2QSUB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Rn
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2146,
GIR_Done,
// Label 2003: @108298
GIM_Reject,
// Label 1999: @108299
GIM_Reject,
// Label 1990: @108300
GIM_Try, /*On fail goto*//*Label 2004*/ 108351, // Rule ID 1030 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (ssubsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) => (VQSUBsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv1i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1030,
GIR_Done,
// Label 2004: @108351
GIM_Reject,
// Label 1991: @108352
GIM_Try, /*On fail goto*//*Label 2005*/ 108403, // Rule ID 1025 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (ssubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VQSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1025,
GIR_Done,
// Label 2005: @108403
GIM_Reject,
// Label 1992: @108404
GIM_Try, /*On fail goto*//*Label 2006*/ 108525,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2007*/ 108489, // Rule ID 2490 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (ssubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 2637:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) => (VQDMLSLv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLSLv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2490,
GIR_Done,
// Label 2007: @108489
GIM_Try, /*On fail goto*//*Label 2008*/ 108524, // Rule ID 1031 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (ssubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) => (VQSUBsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv2i64,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1031,
GIR_Done,
// Label 2008: @108524
GIM_Reject,
// Label 2006: @108525
GIM_Reject,
// Label 1993: @108526
GIM_Try, /*On fail goto*//*Label 2009*/ 108577, // Rule ID 1024 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (ssubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VQSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1024,
GIR_Done,
// Label 2009: @108577
GIM_Reject,
// Label 1994: @108578
GIM_Try, /*On fail goto*//*Label 2010*/ 108768,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2011*/ 108663, // Rule ID 2489 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC,
GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, Intrinsic::arm_neon_vqdmull,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 2637:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) => (VQDMLSLv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQDMLSLv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2489,
GIR_Done,
// Label 2011: @108663
GIM_Try, /*On fail goto*//*Label 2012*/ 108706, // Rule ID 1027 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VQSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1027,
GIR_Done,
// Label 2012: @108706
GIM_Try, /*On fail goto*//*Label 2013*/ 108767, // Rule ID 3630 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (ssubsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VQSUBs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSUBs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3630,
GIR_Done,
// Label 2013: @108767
GIM_Reject,
// Label 2010: @108768
GIM_Reject,
// Label 1995: @108769
GIM_Try, /*On fail goto*//*Label 2014*/ 108820, // Rule ID 1028 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (ssubsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VQSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1028,
GIR_Done,
// Label 2014: @108820
GIM_Reject,
// Label 1996: @108821
GIM_Try, /*On fail goto*//*Label 2015*/ 108936,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2016*/ 108874, // Rule ID 1026 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (ssubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VQSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1026,
GIR_Done,
// Label 2016: @108874
GIM_Try, /*On fail goto*//*Label 2017*/ 108935, // Rule ID 3627 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (ssubsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VQSUBs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSUBs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3627,
GIR_Done,
// Label 2017: @108935
GIM_Reject,
// Label 2015: @108936
GIM_Reject,
// Label 1997: @108937
GIM_Try, /*On fail goto*//*Label 2018*/ 109052,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 2019*/ 108990, // Rule ID 1029 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (ssubsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VQSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VQSUBsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1029,
GIR_Done,
// Label 2019: @108990
GIM_Try, /*On fail goto*//*Label 2020*/ 109051, // Rule ID 3624 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (ssubsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VQSUBs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VQSUBs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3624,
GIR_Done,
// Label 2020: @109051
GIM_Reject,
// Label 2018: @109052
GIM_Reject,
// Label 1998: @109053
GIM_Reject,
// Label 32: @109054
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2028*/ 111199,
/*GILLT_s16*//*Label 2021*/ 109073,
/*GILLT_s32*//*Label 2022*/ 109125,
/*GILLT_s64*//*Label 2023*/ 110544, 0,
/*GILLT_v2s32*//*Label 2024*/ 110596, 0, 0,
/*GILLT_v4s16*//*Label 2025*/ 110648,
/*GILLT_v4s32*//*Label 2026*/ 110831, 0, 0, 0,
/*GILLT_v8s16*//*Label 2027*/ 110947,
// Label 2021: @109073
GIM_Try, /*On fail goto*//*Label 2029*/ 109124, // Rule ID 630 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (fadd:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VADDH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 630,
GIR_Done,
// Label 2029: @109124
GIM_Reject,
// Label 2022: @109125
GIM_Try, /*On fail goto*//*Label 2030*/ 110543,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2031*/ 109425, // Rule ID 6024 //
GIM_CheckFeatures, GIFBS_HasNEON_UseFPVMLx_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fadd:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b), SPR:{ *:[f32] }:$acc) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/11, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
GIR_BuildMI, /*InsnID*/10, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/10, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
GIR_BuildMI, /*InsnID*/9, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/9, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/9, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // acc
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VMLAfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/8, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 6024,
GIR_Done,
// Label 2031: @109425
GIM_Try, /*On fail goto*//*Label 2032*/ 109715, // Rule ID 6025 //
GIM_CheckFeatures, GIFBS_HasVFP4_UseFusedMAC_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fadd:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b), SPR:{ *:[f32] }:$acc) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/11, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
GIR_BuildMI, /*InsnID*/10, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/10, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
GIR_BuildMI, /*InsnID*/9, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/9, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/9, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/2, // acc
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VFMAfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/8, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 6025,
GIR_Done,
// Label 2032: @109715
GIM_Try, /*On fail goto*//*Label 2033*/ 110005, // Rule ID 2715 //
GIM_CheckFeatures, GIFBS_HasNEON_UseFPVMLx_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fadd:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/11, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
GIR_BuildMI, /*InsnID*/10, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/10, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
GIR_BuildMI, /*InsnID*/9, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/9, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/9, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // acc
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VMLAfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/8, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2715,
GIR_Done,
// Label 2033: @110005
GIM_Try, /*On fail goto*//*Label 2034*/ 110295, // Rule ID 2717 //
GIM_CheckFeatures, GIFBS_HasVFP4_UseFusedMAC_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fadd:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMAfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/11, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
GIR_BuildMI, /*InsnID*/10, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/10, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
GIR_BuildMI, /*InsnID*/9, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/9, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/9, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // acc
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VFMAfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/8, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2717,
GIR_Done,
// Label 2034: @110295
GIM_Try, /*On fail goto*//*Label 2035*/ 110338, // Rule ID 629 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fadd:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VADDS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 629,
GIR_Done,
// Label 2035: @110338
GIM_Try, /*On fail goto*//*Label 2036*/ 110542, // Rule ID 2712 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fadd:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VADDfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VADDfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2712,
GIR_Done,
// Label 2036: @110542
GIM_Reject,
// Label 2030: @110543
GIM_Reject,
// Label 2023: @110544
GIM_Try, /*On fail goto*//*Label 2037*/ 110595, // Rule ID 628 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fadd:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VADDD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 628,
GIR_Done,
// Label 2037: @110595
GIM_Reject,
// Label 2024: @110596
GIM_Try, /*On fail goto*//*Label 2038*/ 110647, // Rule ID 780 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fadd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VADDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 780,
GIR_Done,
// Label 2038: @110647
GIM_Reject,
// Label 2025: @110648
GIM_Try, /*On fail goto*//*Label 2039*/ 110830,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2040*/ 110726, // Rule ID 5684 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fadd:{ *:[v4f16] } (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm), DPR:{ *:[v4f16] }:$src1) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5684,
GIR_Done,
// Label 2040: @110726
GIM_Try, /*On fail goto*//*Label 2041*/ 110790, // Rule ID 961 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 961,
GIR_Done,
// Label 2041: @110790
GIM_Try, /*On fail goto*//*Label 2042*/ 110829, // Rule ID 782 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fadd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VADDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 782,
GIR_Done,
// Label 2042: @110829
GIM_Reject,
// Label 2039: @110830
GIM_Reject,
// Label 2026: @110831
GIM_Try, /*On fail goto*//*Label 2043*/ 110946,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2044*/ 110884, // Rule ID 781 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fadd:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VADDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 781,
GIR_Done,
// Label 2044: @110884
GIM_Try, /*On fail goto*//*Label 2045*/ 110945, // Rule ID 4114 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fadd:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VADDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VADDf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4114,
GIR_Done,
// Label 2045: @110945
GIM_Reject,
// Label 2043: @110946
GIM_Reject,
// Label 2027: @110947
GIM_Try, /*On fail goto*//*Label 2046*/ 111198,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2047*/ 111025, // Rule ID 5685 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fadd:{ *:[v8f16] } (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm), QPR:{ *:[v8f16] }:$src1) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5685,
GIR_Done,
// Label 2047: @111025
GIM_Try, /*On fail goto*//*Label 2048*/ 111093, // Rule ID 962 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 962,
GIR_Done,
// Label 2048: @111093
GIM_Try, /*On fail goto*//*Label 2049*/ 111136, // Rule ID 783 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fadd:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VADDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VADDhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 783,
GIR_Done,
// Label 2049: @111136
GIM_Try, /*On fail goto*//*Label 2050*/ 111197, // Rule ID 4118 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fadd:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VADDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VADDf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4118,
GIR_Done,
// Label 2050: @111197
GIM_Reject,
// Label 2046: @111198
GIM_Reject,
// Label 2028: @111199
GIM_Reject,
// Label 33: @111200
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2058*/ 112757,
/*GILLT_s16*//*Label 2051*/ 111219,
/*GILLT_s32*//*Label 2052*/ 111271,
/*GILLT_s64*//*Label 2053*/ 112110, 0,
/*GILLT_v2s32*//*Label 2054*/ 112162, 0, 0,
/*GILLT_v4s16*//*Label 2055*/ 112214,
/*GILLT_v4s32*//*Label 2056*/ 112389, 0, 0, 0,
/*GILLT_v8s16*//*Label 2057*/ 112505,
// Label 2051: @111219
GIM_Try, /*On fail goto*//*Label 2059*/ 111270, // Rule ID 633 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (fsub:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VSUBH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 633,
GIR_Done,
// Label 2059: @111270
GIM_Reject,
// Label 2052: @111271
GIM_Try, /*On fail goto*//*Label 2060*/ 112109,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2061*/ 111571, // Rule ID 2716 //
GIM_CheckFeatures, GIFBS_HasNEON_UseFPVMLx_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fsub:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMLSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/11, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
GIR_BuildMI, /*InsnID*/10, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/10, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
GIR_BuildMI, /*InsnID*/9, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/9, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/9, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // acc
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VMLSfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/8, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2716,
GIR_Done,
// Label 2061: @111571
GIM_Try, /*On fail goto*//*Label 2062*/ 111861, // Rule ID 2718 //
GIM_CheckFeatures, GIFBS_HasVFP4_UseFusedMAC_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fsub:{ *:[f32] } SPR:{ *:[f32] }:$acc, (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VFMSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$acc, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/8, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/9, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/10, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/11, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/11, /*TempRegID*/10, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/11,
GIR_BuildMI, /*InsnID*/10, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/9, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/10, /*TempRegID*/10, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/10,
GIR_BuildMI, /*InsnID*/9, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/8, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/9, /*TempRegID*/9, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/9, /*OldInsnID*/1, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/9, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/9, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // acc
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VFMSfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/8, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2718,
GIR_Done,
// Label 2062: @111861
GIM_Try, /*On fail goto*//*Label 2063*/ 111904, // Rule ID 632 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fsub:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VSUBS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 632,
GIR_Done,
// Label 2063: @111904
GIM_Try, /*On fail goto*//*Label 2064*/ 112108, // Rule ID 2713 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fsub:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VSUBfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VSUBfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2713,
GIR_Done,
// Label 2064: @112108
GIM_Reject,
// Label 2060: @112109
GIM_Reject,
// Label 2053: @112110
GIM_Try, /*On fail goto*//*Label 2065*/ 112161, // Rule ID 631 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fsub:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VSUBD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 631,
GIR_Done,
// Label 2065: @112161
GIM_Reject,
// Label 2054: @112162
GIM_Try, /*On fail goto*//*Label 2066*/ 112213, // Rule ID 984 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fsub:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VSUBfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 984,
GIR_Done,
// Label 2066: @112213
GIM_Reject,
// Label 2055: @112214
GIM_Try, /*On fail goto*//*Label 2067*/ 112388,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2068*/ 112292, // Rule ID 939 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFPVMLx,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VMLShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLShd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 939,
GIR_Done,
// Label 2068: @112292
GIM_Try, /*On fail goto*//*Label 2069*/ 112352, // Rule ID 965 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)) => (VFMShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMShd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 965,
GIR_Done,
// Label 2069: @112352
GIM_Try, /*On fail goto*//*Label 2070*/ 112387, // Rule ID 986 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fsub:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VSUBhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 986,
GIR_Done,
// Label 2070: @112387
GIM_Reject,
// Label 2067: @112388
GIM_Reject,
// Label 2056: @112389
GIM_Try, /*On fail goto*//*Label 2071*/ 112504,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2072*/ 112442, // Rule ID 985 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fsub:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VSUBfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 985,
GIR_Done,
// Label 2072: @112442
GIM_Try, /*On fail goto*//*Label 2073*/ 112503, // Rule ID 4122 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fsub:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VSUBf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSUBf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4122,
GIR_Done,
// Label 2073: @112503
GIM_Reject,
// Label 2071: @112504
GIM_Reject,
// Label 2057: @112505
GIM_Try, /*On fail goto*//*Label 2074*/ 112756,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2075*/ 112583, // Rule ID 940 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFPVMLx,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VMLShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMLShq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 940,
GIR_Done,
// Label 2075: @112583
GIM_Try, /*On fail goto*//*Label 2076*/ 112651, // Rule ID 966 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_UseFusedMAC,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)) => (VFMShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMShq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 966,
GIR_Done,
// Label 2076: @112651
GIM_Try, /*On fail goto*//*Label 2077*/ 112694, // Rule ID 987 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fsub:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VSUBhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSUBhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 987,
GIR_Done,
// Label 2077: @112694
GIM_Try, /*On fail goto*//*Label 2078*/ 112755, // Rule ID 4126 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fsub:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VSUBf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VSUBf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4126,
GIR_Done,
// Label 2078: @112755
GIM_Reject,
// Label 2074: @112756
GIM_Reject,
// Label 2058: @112757
GIM_Reject,
// Label 34: @112758
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2086*/ 113695,
/*GILLT_s16*//*Label 2079*/ 112777,
/*GILLT_s32*//*Label 2080*/ 112829,
/*GILLT_s64*//*Label 2081*/ 113200, 0,
/*GILLT_v2s32*//*Label 2082*/ 113359, 0, 0,
/*GILLT_v4s16*//*Label 2083*/ 113411,
/*GILLT_v4s32*//*Label 2084*/ 113463, 0, 0, 0,
/*GILLT_v8s16*//*Label 2085*/ 113579,
// Label 2079: @112777
GIM_Try, /*On fail goto*//*Label 2087*/ 112828, // Rule ID 639 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VMULH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 639,
GIR_Done,
// Label 2087: @112828
GIM_Reject,
// Label 2080: @112829
GIM_Try, /*On fail goto*//*Label 2088*/ 113199,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2089*/ 112895, // Rule ID 2300 //
GIM_CheckFeatures, GIFBS_NoHonorSignDependentRounding,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fmul:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a), SPR:{ *:[f32] }:$b) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2300,
GIR_Done,
// Label 2089: @112895
GIM_Try, /*On fail goto*//*Label 2090*/ 112951, // Rule ID 5811 //
GIM_CheckFeatures, GIFBS_NoHonorSignDependentRounding,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fmul:{ *:[f32] } SPR:{ *:[f32] }:$b, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5811,
GIR_Done,
// Label 2090: @112951
GIM_Try, /*On fail goto*//*Label 2091*/ 112994, // Rule ID 638 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VMULS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 638,
GIR_Done,
// Label 2091: @112994
GIM_Try, /*On fail goto*//*Label 2092*/ 113198, // Rule ID 2714 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fmul:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMULfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VMULfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2714,
GIR_Done,
// Label 2092: @113198
GIM_Reject,
// Label 2088: @113199
GIM_Reject,
// Label 2081: @113200
GIM_Try, /*On fail goto*//*Label 2093*/ 113358,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2094*/ 113266, // Rule ID 2299 //
GIM_CheckFeatures, GIFBS_HasDPVFP_NoHonorSignDependentRounding,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fmul:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$a), DPR:{ *:[f64] }:$b) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2299,
GIR_Done,
// Label 2094: @113266
GIM_Try, /*On fail goto*//*Label 2095*/ 113318, // Rule ID 5810 //
GIM_CheckFeatures, GIFBS_HasDPVFP_NoHonorSignDependentRounding,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fmul:{ *:[f64] } DPR:{ *:[f64] }:$b, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$a, DPR:{ *:[f64] }:$b)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // b
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5810,
GIR_Done,
// Label 2095: @113318
GIM_Try, /*On fail goto*//*Label 2096*/ 113357, // Rule ID 637 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VMULD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 637,
GIR_Done,
// Label 2096: @113357
GIM_Reject,
// Label 2093: @113358
GIM_Reject,
// Label 2082: @113359
GIM_Try, /*On fail goto*//*Label 2097*/ 113410, // Rule ID 859 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VMULfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 859,
GIR_Done,
// Label 2097: @113410
GIM_Reject,
// Label 2083: @113411
GIM_Try, /*On fail goto*//*Label 2098*/ 113462, // Rule ID 861 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VMULhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 861,
GIR_Done,
// Label 2098: @113462
GIM_Reject,
// Label 2084: @113463
GIM_Try, /*On fail goto*//*Label 2099*/ 113578,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2100*/ 113516, // Rule ID 860 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VMULfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 860,
GIR_Done,
// Label 2100: @113516
GIM_Try, /*On fail goto*//*Label 2101*/ 113577, // Rule ID 4088 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fmul:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VMULf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4088,
GIR_Done,
// Label 2101: @113577
GIM_Reject,
// Label 2099: @113578
GIM_Reject,
// Label 2085: @113579
GIM_Try, /*On fail goto*//*Label 2102*/ 113694,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2103*/ 113632, // Rule ID 862 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VMULhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMULhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 862,
GIR_Done,
// Label 2103: @113632
GIM_Try, /*On fail goto*//*Label 2104*/ 113693, // Rule ID 4092 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fmul:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VMULf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMULf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4092,
GIR_Done,
// Label 2104: @113693
GIM_Reject,
// Label 2102: @113694
GIM_Reject,
// Label 2086: @113695
GIM_Reject,
// Label 35: @113696
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2112*/ 115396,
/*GILLT_s16*//*Label 2105*/ 113715,
/*GILLT_s32*//*Label 2106*/ 114108,
/*GILLT_s64*//*Label 2107*/ 114501, 0,
/*GILLT_v2s32*//*Label 2108*/ 114894, 0, 0,
/*GILLT_v4s16*//*Label 2109*/ 115081,
/*GILLT_v4s32*//*Label 2110*/ 115145, 0, 0, 0,
/*GILLT_v8s16*//*Label 2111*/ 115332,
// Label 2105: @113715
GIM_Try, /*On fail goto*//*Label 2113*/ 114107,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2114*/ 113806, // Rule ID 2406 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sdin)) => (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2406,
GIR_Done,
// Label 2114: @113806
GIM_Try, /*On fail goto*//*Label 2115*/ 113879, // Rule ID 5819 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sdin)) => (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5819,
GIR_Done,
// Label 2115: @113879
GIM_Try, /*On fail goto*//*Label 2116*/ 113939, // Rule ID 2398 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin) => (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2398,
GIR_Done,
// Label 2116: @113939
GIM_Try, /*On fail goto*//*Label 2117*/ 113999, // Rule ID 5816 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sdin) => (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5816,
GIR_Done,
// Label 2117: @113999
GIM_Try, /*On fail goto*//*Label 2118*/ 114059, // Rule ID 2411 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sdin)) => (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2411,
GIR_Done,
// Label 2118: @114059
GIM_Try, /*On fail goto*//*Label 2119*/ 114106, // Rule ID 2392 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::HPRRegClassID,
// (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin) => (VFMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2392,
GIR_Done,
// Label 2119: @114106
GIM_Reject,
// Label 2113: @114107
GIM_Reject,
// Label 2106: @114108
GIM_Try, /*On fail goto*//*Label 2120*/ 114500,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2121*/ 114199, // Rule ID 2405 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) => (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2405,
GIR_Done,
// Label 2121: @114199
GIM_Try, /*On fail goto*//*Label 2122*/ 114272, // Rule ID 5818 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) => (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5818,
GIR_Done,
// Label 2122: @114272
GIM_Try, /*On fail goto*//*Label 2123*/ 114332, // Rule ID 2397 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin) => (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2397,
GIR_Done,
// Label 2123: @114332
GIM_Try, /*On fail goto*//*Label 2124*/ 114392, // Rule ID 5815 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sdin) => (VFMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5815,
GIR_Done,
// Label 2124: @114392
GIM_Try, /*On fail goto*//*Label 2125*/ 114452, // Rule ID 2410 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sdin)) => (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2410,
GIR_Done,
// Label 2125: @114452
GIM_Try, /*On fail goto*//*Label 2126*/ 114499, // Rule ID 2391 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::SPRRegClassID,
// (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin) => (VFMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2391,
GIR_Done,
// Label 2126: @114499
GIM_Reject,
// Label 2120: @114500
GIM_Reject,
// Label 2107: @114501
GIM_Try, /*On fail goto*//*Label 2127*/ 114893,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2128*/ 114592, // Rule ID 2404 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) => (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2404,
GIR_Done,
// Label 2128: @114592
GIM_Try, /*On fail goto*//*Label 2129*/ 114665, // Rule ID 5817 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) => (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5817,
GIR_Done,
// Label 2129: @114665
GIM_Try, /*On fail goto*//*Label 2130*/ 114725, // Rule ID 2396 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin) => (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2396,
GIR_Done,
// Label 2130: @114725
GIM_Try, /*On fail goto*//*Label 2131*/ 114785, // Rule ID 5814 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Ddin) => (VFMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5814,
GIR_Done,
// Label 2131: @114785
GIM_Try, /*On fail goto*//*Label 2132*/ 114845, // Rule ID 2409 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Ddin)) => (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2409,
GIR_Done,
// Label 2132: @114845
GIM_Try, /*On fail goto*//*Label 2133*/ 114892, // Rule ID 2390 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin) => (VFMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2390,
GIR_Done,
// Label 2133: @114892
GIM_Reject,
// Label 2127: @114893
GIM_Reject,
// Label 2108: @114894
GIM_Try, /*On fail goto*//*Label 2134*/ 115080,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2135*/ 114972, // Rule ID 2497 //
GIM_CheckFeatures, GIFBS_HasNEON_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[v2f32] } (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn), DPR:{ *:[v2f32] }:$Vm, DPR:{ *:[v2f32] }:$src1) => (VFMSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2497,
GIR_Done,
// Label 2135: @114972
GIM_Try, /*On fail goto*//*Label 2136*/ 115032, // Rule ID 5857 //
GIM_CheckFeatures, GIFBS_HasNEON_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm, (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn), DPR:{ *:[v2f32] }:$src1) => (VFMSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5857,
GIR_Done,
// Label 2136: @115032
GIM_Try, /*On fail goto*//*Label 2137*/ 115079, // Rule ID 2495 //
GIM_CheckFeatures, GIFBS_HasNEON_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (fma:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, DPR:{ *:[v2f32] }:$src1) => (VFMAfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2495,
GIR_Done,
// Label 2137: @115079
GIM_Reject,
// Label 2134: @115080
GIM_Reject,
// Label 2109: @115081
GIM_Try, /*On fail goto*//*Label 2138*/ 115144, // Rule ID 2493 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::DPRRegClassID,
// (fma:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, DPR:{ *:[v4f16] }:$src1) => (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2493,
GIR_Done,
// Label 2138: @115144
GIM_Reject,
// Label 2110: @115145
GIM_Try, /*On fail goto*//*Label 2139*/ 115331,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2140*/ 115223, // Rule ID 2498 //
GIM_CheckFeatures, GIFBS_HasNEON_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn), QPR:{ *:[v4f32] }:$Vm, QPR:{ *:[v4f32] }:$src1) => (VFMSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2498,
GIR_Done,
// Label 2140: @115223
GIM_Try, /*On fail goto*//*Label 2141*/ 115283, // Rule ID 5858 //
GIM_CheckFeatures, GIFBS_HasNEON_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fma:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm, (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn), QPR:{ *:[v4f32] }:$src1) => (VFMSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMSfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5858,
GIR_Done,
// Label 2141: @115283
GIM_Try, /*On fail goto*//*Label 2142*/ 115330, // Rule ID 2496 //
GIM_CheckFeatures, GIFBS_HasNEON_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (fma:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, QPR:{ *:[v4f32] }:$src1) => (VFMAfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2496,
GIR_Done,
// Label 2142: @115330
GIM_Reject,
// Label 2139: @115331
GIM_Reject,
// Label 2111: @115332
GIM_Try, /*On fail goto*//*Label 2143*/ 115395, // Rule ID 2494 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/ARM::QPRRegClassID,
// (fma:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, QPR:{ *:[v8f16] }:$src1) => (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFMAhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // src1
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2494,
GIR_Done,
// Label 2143: @115395
GIM_Reject,
// Label 2112: @115396
GIM_Reject,
// Label 36: @115397
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 3, /*)*//*default:*//*Label 2147*/ 115562,
/*GILLT_s16*//*Label 2144*/ 115406,
/*GILLT_s32*//*Label 2145*/ 115458,
/*GILLT_s64*//*Label 2146*/ 115510,
// Label 2144: @115406
GIM_Try, /*On fail goto*//*Label 2148*/ 115457, // Rule ID 636 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (fdiv:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VDIVH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VDIVH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 636,
GIR_Done,
// Label 2148: @115457
GIM_Reject,
// Label 2145: @115458
GIM_Try, /*On fail goto*//*Label 2149*/ 115509, // Rule ID 635 //
GIM_CheckFeatures, GIFBS_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fdiv:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VDIVS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VDIVS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 635,
GIR_Done,
// Label 2149: @115509
GIM_Reject,
// Label 2146: @115510
GIM_Try, /*On fail goto*//*Label 2150*/ 115561, // Rule ID 634 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fdiv:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VDIVD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VDIVD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 634,
GIR_Done,
// Label 2150: @115561
GIM_Reject,
// Label 2147: @115562
GIM_Reject,
// Label 37: @115563
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2158*/ 116880,
/*GILLT_s16*//*Label 2151*/ 115582,
/*GILLT_s32*//*Label 2152*/ 115911,
/*GILLT_s64*//*Label 2153*/ 116391, 0,
/*GILLT_v2s32*//*Label 2154*/ 116720, 0, 0,
/*GILLT_v4s16*//*Label 2155*/ 116760,
/*GILLT_v4s32*//*Label 2156*/ 116800, 0, 0, 0,
/*GILLT_v8s16*//*Label 2157*/ 116840,
// Label 2151: @115582
GIM_Try, /*On fail goto*//*Label 2159*/ 115910,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2160*/ 115673, // Rule ID 2414 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s16,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fneg:{ *:[f16] } (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin)) => (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2414,
GIR_Done,
// Label 2160: @115673
GIM_Try, /*On fail goto*//*Label 2161*/ 115754, // Rule ID 5822 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fneg:{ *:[f16] } (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sdin)) => (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5822,
GIR_Done,
// Label 2161: @115754
GIM_Try, /*On fail goto*//*Label 2162*/ 115822, // Rule ID 2403 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fneg:{ *:[f16] } (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin)) => (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2403,
GIR_Done,
// Label 2162: @115822
GIM_Try, /*On fail goto*//*Label 2163*/ 115878, // Rule ID 642 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fneg:{ *:[f16] } (fmul:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)) => (VNMULH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 642,
GIR_Done,
// Label 2163: @115878
GIM_Try, /*On fail goto*//*Label 2164*/ 115909, // Rule ID 680 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VNEGH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 680,
GIR_Done,
// Label 2164: @115909
GIM_Reject,
// Label 2159: @115910
GIM_Reject,
// Label 2152: @115911
GIM_Try, /*On fail goto*//*Label 2165*/ 116390,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2166*/ 116002, // Rule ID 2413 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fneg:{ *:[f32] } (fma:{ *:[f32] } (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin)) => (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2413,
GIR_Done,
// Label 2166: @116002
GIM_Try, /*On fail goto*//*Label 2167*/ 116087, // Rule ID 5821 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fneg:{ *:[f32] } (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sm, (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sn), SPR:{ *:[f32] }:$Sdin)) => (VFNMSS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5821,
GIR_Done,
// Label 2167: @116087
GIM_Try, /*On fail goto*//*Label 2168*/ 116159, // Rule ID 2402 //
GIM_CheckFeatures, GIFBS_HasVFP4,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fneg:{ *:[f32] } (fma:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm, SPR:{ *:[f32] }:$Sdin)) => (VFNMAS:{ *:[f32] } SPR:{ *:[f32] }:$Sdin, SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Sdin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2402,
GIR_Done,
// Label 2168: @116159
GIM_Try, /*On fail goto*//*Label 2169*/ 116219, // Rule ID 641 //
GIM_CheckFeatures, GIFBS_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fneg:{ *:[f32] } (fmul:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)) => (VNMULS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Sn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 641,
GIR_Done,
// Label 2169: @116219
GIM_Try, /*On fail goto*//*Label 2170*/ 116254, // Rule ID 679 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fneg:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VNEGS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 679,
GIR_Done,
// Label 2170: @116254
GIM_Try, /*On fail goto*//*Label 2171*/ 116389, // Rule ID 2720 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fneg:{ *:[f32] } SPR:{ *:[f32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VNEGfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VNEGfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2720,
GIR_Done,
// Label 2171: @116389
GIM_Reject,
// Label 2165: @116390
GIM_Reject,
// Label 2153: @116391
GIM_Try, /*On fail goto*//*Label 2172*/ 116719,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2173*/ 116482, // Rule ID 2412 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fneg:{ *:[f64] } (fma:{ *:[f64] } (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin)) => (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2412,
GIR_Done,
// Label 2173: @116482
GIM_Try, /*On fail goto*//*Label 2174*/ 116563, // Rule ID 5820 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fneg:{ *:[f64] } (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dm, (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dn), DPR:{ *:[f64] }:$Ddin)) => (VFNMSD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5820,
GIR_Done,
// Label 2174: @116563
GIM_Try, /*On fail goto*//*Label 2175*/ 116631, // Rule ID 2401 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP4,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMA,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/1, /*Op*/3, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/3, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fneg:{ *:[f64] } (fma:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm, DPR:{ *:[f64] }:$Ddin)) => (VFNMAD:{ *:[f64] } DPR:{ *:[f64] }:$Ddin, DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VFNMAD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/3, // Ddin
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2401,
GIR_Done,
// Label 2175: @116631
GIM_Try, /*On fail goto*//*Label 2176*/ 116687, // Rule ID 640 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FMUL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fneg:{ *:[f64] } (fmul:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)) => (VNMULD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNMULD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Dn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 640,
GIR_Done,
// Label 2176: @116687
GIM_Try, /*On fail goto*//*Label 2177*/ 116718, // Rule ID 678 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fneg:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VNEGD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 678,
GIR_Done,
// Label 2177: @116718
GIM_Reject,
// Label 2172: @116719
GIM_Reject,
// Label 2154: @116720
GIM_Try, /*On fail goto*//*Label 2178*/ 116759, // Rule ID 1548 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fneg:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) => (VNEGfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1548,
GIR_Done,
// Label 2178: @116759
GIM_Reject,
// Label 2155: @116760
GIM_Try, /*On fail goto*//*Label 2179*/ 116799, // Rule ID 1550 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fneg:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) => (VNEGhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1550,
GIR_Done,
// Label 2179: @116799
GIM_Reject,
// Label 2156: @116800
GIM_Try, /*On fail goto*//*Label 2180*/ 116839, // Rule ID 1549 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fneg:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) => (VNEGf32q:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGf32q,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1549,
GIR_Done,
// Label 2180: @116839
GIM_Reject,
// Label 2157: @116840
GIM_Try, /*On fail goto*//*Label 2181*/ 116879, // Rule ID 1551 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fneg:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) => (VNEGhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VNEGhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1551,
GIR_Done,
// Label 2181: @116879
GIM_Reject,
// Label 2158: @116880
GIM_Reject,
// Label 38: @116881
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 9, /*)*//*default:*//*Label 2185*/ 117084,
/*GILLT_s32*//*Label 2182*/ 116895,
/*GILLT_s64*//*Label 2183*/ 116951, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 2184*/ 117046,
// Label 2182: @116895
GIM_Try, /*On fail goto*//*Label 2186*/ 116950, // Rule ID 2301 //
GIM_CheckFeatures, GIFBS_HasFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fpextend:{ *:[f32] } HPR:{ *:[f16] }:$Sm) => (VCVTBHS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } HPR:{ *:[f16] }:$Sm, SPR:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTBHS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2301,
GIR_Done,
// Label 2186: @116950
GIM_Reject,
// Label 2183: @116951
GIM_Try, /*On fail goto*//*Label 2187*/ 116990, // Rule ID 676 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fpextend:{ *:[f64] } SPR:{ *:[f32] }:$Sm) => (VCVTDS:{ *:[f64] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTDS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 676,
GIR_Done,
// Label 2187: @116990
GIM_Try, /*On fail goto*//*Label 2188*/ 117045, // Rule ID 2311 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fpextend:{ *:[f64] } HPR:{ *:[f16] }:$Sm) => (VCVTBHD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } HPR:{ *:[f16] }:$Sm, SPR:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTBHD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2311,
GIR_Done,
// Label 2188: @117045
GIM_Reject,
// Label 2184: @117046
GIM_Try, /*On fail goto*//*Label 2189*/ 117083, // Rule ID 2678 //
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fpextend:{ *:[v4f32] } DPR:{ *:[v4f16] }:$src) => (VCVTh2f:{ *:[v4f32] } DPR:{ *:[v4f16] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2f,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2678,
GIR_Done,
// Label 2189: @117083
GIM_Reject,
// Label 2185: @117084
GIM_Reject,
// Label 39: @117085
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 8, /*)*//*default:*//*Label 2193*/ 117324,
/*GILLT_s16*//*Label 2190*/ 117099,
/*GILLT_s32*//*Label 2191*/ 117246, 0, 0, 0, 0, 0,
/*GILLT_v4s16*//*Label 2192*/ 117286,
// Label 2190: @117099
GIM_Try, /*On fail goto*//*Label 2194*/ 117172, // Rule ID 2303 //
GIM_CheckFeatures, GIFBS_HasFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fpround:{ *:[f16] } SPR:{ *:[f32] }:$Sm) => (COPY_TO_REGCLASS:{ *:[f16] } (VCVTBSH:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), SPR:{ *:[f32] }:$Sm), HPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTBSH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::HPRRegClassID,
// GIR_Coverage, 2303,
GIR_Done,
// Label 2194: @117172
GIM_Try, /*On fail goto*//*Label 2195*/ 117245, // Rule ID 2313 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fpround:{ *:[f16] } DPR:{ *:[f64] }:$Dm) => (COPY_TO_REGCLASS:{ *:[f16] } (VCVTBDH:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), DPR:{ *:[f64] }:$Dm), HPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTBDH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::HPRRegClassID,
// GIR_Coverage, 2313,
GIR_Done,
// Label 2195: @117245
GIM_Reject,
// Label 2191: @117246
GIM_Try, /*On fail goto*//*Label 2196*/ 117285, // Rule ID 677 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fpround:{ *:[f32] } DPR:{ *:[f64] }:$Dm) => (VCVTSD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 677,
GIR_Done,
// Label 2196: @117285
GIM_Reject,
// Label 2192: @117286
GIM_Try, /*On fail goto*//*Label 2197*/ 117323, // Rule ID 2677 //
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fpround:{ *:[v4f16] } QPR:{ *:[v4f32] }:$src) => (VCVTf2h:{ *:[v4f16] } QPR:{ *:[v4f32] }:$src)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2h,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2677,
GIR_Done,
// Label 2197: @117323
GIM_Reject,
// Label 2193: @117324
GIM_Reject,
// Label 40: @117325
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 13, /*)*//*default:*//*Label 2205*/ 118563,
/*GILLT_s32*//*Label 2198*/ 117343, 0, 0,
/*GILLT_v2s32*//*Label 2199*/ 118189, 0,
/*GILLT_v4s1*//*Label 2200*/ 118229,
/*GILLT_v4s16*//*Label 2201*/ 118280,
/*GILLT_v4s32*//*Label 2202*/ 118320, 0,
/*GILLT_v8s1*//*Label 2203*/ 118416, 0,
/*GILLT_v8s16*//*Label 2204*/ 118467,
// Label 2198: @117343
GIM_Try, /*On fail goto*//*Label 2206*/ 117406, // Rule ID 2321 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FCEIL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (fceil:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTPSH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2321,
GIR_Done,
// Label 2206: @117406
GIM_Try, /*On fail goto*//*Label 2207*/ 117469, // Rule ID 2323 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FCEIL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (fceil:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTPSS,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2323,
GIR_Done,
// Label 2207: @117469
GIM_Try, /*On fail goto*//*Label 2208*/ 117532, // Rule ID 2325 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FCEIL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (fceil:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPSD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTPSD,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2325,
GIR_Done,
// Label 2208: @117532
GIM_Try, /*On fail goto*//*Label 2209*/ 117595, // Rule ID 2327 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FFLOOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTMSH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2327,
GIR_Done,
// Label 2209: @117595
GIM_Try, /*On fail goto*//*Label 2210*/ 117658, // Rule ID 2329 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FFLOOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTMSS,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2329,
GIR_Done,
// Label 2210: @117658
GIM_Try, /*On fail goto*//*Label 2211*/ 117721, // Rule ID 2331 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FFLOOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMSD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTMSD,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2331,
GIR_Done,
// Label 2211: @117721
GIM_Try, /*On fail goto*//*Label 2212*/ 117784, // Rule ID 2315 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC_ROUND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (fround:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTASH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2315,
GIR_Done,
// Label 2212: @117784
GIM_Try, /*On fail goto*//*Label 2213*/ 117847, // Rule ID 2317 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC_ROUND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (fround:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTASS,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2317,
GIR_Done,
// Label 2213: @117847
GIM_Try, /*On fail goto*//*Label 2214*/ 117910, // Rule ID 2319 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC_ROUND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_sint:{ *:[i32] } (fround:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTASD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTASD,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2319,
GIR_Done,
// Label 2214: @117910
GIM_Try, /*On fail goto*//*Label 2215*/ 117967, // Rule ID 2352 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fp_to_sint:{ *:[i32] } DPR:{ *:[f64] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOSIZD,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2352,
GIR_Done,
// Label 2215: @117967
GIM_Try, /*On fail goto*//*Label 2216*/ 118024, // Rule ID 2356 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fp_to_sint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOSIZS,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2356,
GIR_Done,
// Label 2216: @118024
GIM_Try, /*On fail goto*//*Label 2217*/ 118081, // Rule ID 2360 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fp_to_sint:{ *:[i32] } HPR:{ *:[f16] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOSIZH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOSIZH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2360,
GIR_Done,
// Label 2217: @118081
GIM_Try, /*On fail goto*//*Label 2218*/ 118188, // Rule ID 2725 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fp_to_sint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (EXTRACT_SUBREG:{ *:[i32] } (VCVTf2sd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/2, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTf2sd,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2725,
GIR_Done,
// Label 2218: @118188
GIM_Reject,
// Label 2199: @118189
GIM_Try, /*On fail goto*//*Label 2219*/ 118228, // Rule ID 1622 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fp_to_sint:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) => (VCVTf2sd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2sd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1622,
GIR_Done,
// Label 2219: @118228
GIM_Reject,
// Label 2200: @118229
GIM_Try, /*On fail goto*//*Label 2220*/ 118279, // Rule ID 5205 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fp_to_sint:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1) => (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCMPf32r,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // P0
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // v1
GIR_AddRegister, /*InsnID*/0, ARM::ZR, /*AddRegisterRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5205,
GIR_Done,
// Label 2220: @118279
GIM_Reject,
// Label 2201: @118280
GIM_Try, /*On fail goto*//*Label 2221*/ 118319, // Rule ID 1630 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fp_to_sint:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) => (VCVTh2sd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2sd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1630,
GIR_Done,
// Label 2221: @118319
GIM_Reject,
// Label 2202: @118320
GIM_Try, /*On fail goto*//*Label 2222*/ 118415,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2223*/ 118361, // Rule ID 1626 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fp_to_sint:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) => (VCVTf2sq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2sq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1626,
GIR_Done,
// Label 2223: @118361
GIM_Try, /*On fail goto*//*Label 2224*/ 118414, // Rule ID 4192 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fp_to_sint:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) => (MVE_VCVTs32f32z:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs32f32z,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4192,
GIR_Done,
// Label 2224: @118414
GIM_Reject,
// Label 2222: @118415
GIM_Reject,
// Label 2203: @118416
GIM_Try, /*On fail goto*//*Label 2225*/ 118466, // Rule ID 5206 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fp_to_sint:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1) => (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCMPf16r,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // P0
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // v1
GIR_AddRegister, /*InsnID*/0, ARM::ZR, /*AddRegisterRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5206,
GIR_Done,
// Label 2225: @118466
GIM_Reject,
// Label 2204: @118467
GIM_Try, /*On fail goto*//*Label 2226*/ 118562,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2227*/ 118508, // Rule ID 1634 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fp_to_sint:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) => (VCVTh2sq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2sq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1634,
GIR_Done,
// Label 2227: @118508
GIM_Try, /*On fail goto*//*Label 2228*/ 118561, // Rule ID 4188 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fp_to_sint:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) => (MVE_VCVTs16f16z:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTs16f16z,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4188,
GIR_Done,
// Label 2228: @118561
GIM_Reject,
// Label 2226: @118562
GIM_Reject,
// Label 2205: @118563
GIM_Reject,
// Label 41: @118564
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 13, /*)*//*default:*//*Label 2236*/ 119802,
/*GILLT_s32*//*Label 2229*/ 118582, 0, 0,
/*GILLT_v2s32*//*Label 2230*/ 119428, 0,
/*GILLT_v4s1*//*Label 2231*/ 119468,
/*GILLT_v4s16*//*Label 2232*/ 119519,
/*GILLT_v4s32*//*Label 2233*/ 119559, 0,
/*GILLT_v8s1*//*Label 2234*/ 119655, 0,
/*GILLT_v8s16*//*Label 2235*/ 119706,
// Label 2229: @118582
GIM_Try, /*On fail goto*//*Label 2237*/ 118645, // Rule ID 2322 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FCEIL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (fceil:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTPUH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2322,
GIR_Done,
// Label 2237: @118645
GIM_Try, /*On fail goto*//*Label 2238*/ 118708, // Rule ID 2324 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FCEIL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (fceil:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTPUS,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2324,
GIR_Done,
// Label 2238: @118708
GIM_Try, /*On fail goto*//*Label 2239*/ 118771, // Rule ID 2326 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FCEIL,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (fceil:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTPUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTPUD,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2326,
GIR_Done,
// Label 2239: @118771
GIM_Try, /*On fail goto*//*Label 2240*/ 118834, // Rule ID 2328 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FFLOOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTMUH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2328,
GIR_Done,
// Label 2240: @118834
GIM_Try, /*On fail goto*//*Label 2241*/ 118897, // Rule ID 2330 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FFLOOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTMUS,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2330,
GIR_Done,
// Label 2241: @118897
GIM_Try, /*On fail goto*//*Label 2242*/ 118960, // Rule ID 2332 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FFLOOR,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTMUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTMUD,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2332,
GIR_Done,
// Label 2242: @118960
GIM_Try, /*On fail goto*//*Label 2243*/ 119023, // Rule ID 2316 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC_ROUND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (fround:{ *:[f16] } HPR:{ *:[f16] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTAUH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2316,
GIR_Done,
// Label 2243: @119023
GIM_Try, /*On fail goto*//*Label 2244*/ 119086, // Rule ID 2318 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC_ROUND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (fround:{ *:[f32] } SPR:{ *:[f32] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTAUS,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2318,
GIR_Done,
// Label 2244: @119086
GIM_Try, /*On fail goto*//*Label 2245*/ 119149, // Rule ID 2320 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_INTRINSIC_ROUND,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fp_to_uint:{ *:[i32] } (fround:{ *:[f64] } DPR:{ *:[f64] }:$a)) => (COPY_TO_REGCLASS:{ *:[i32] } (VCVTAUD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTAUD,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2320,
GIR_Done,
// Label 2245: @119149
GIM_Try, /*On fail goto*//*Label 2246*/ 119206, // Rule ID 2362 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fp_to_uint:{ *:[i32] } DPR:{ *:[f64] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZD:{ *:[f32] } DPR:{ *:[f64] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOUIZD,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2362,
GIR_Done,
// Label 2246: @119206
GIM_Try, /*On fail goto*//*Label 2247*/ 119263, // Rule ID 2366 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fp_to_uint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZS:{ *:[f32] } SPR:{ *:[f32] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOUIZS,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2366,
GIR_Done,
// Label 2247: @119263
GIM_Try, /*On fail goto*//*Label 2248*/ 119320, // Rule ID 2370 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fp_to_uint:{ *:[i32] } HPR:{ *:[f16] }:$a) => (COPY_TO_REGCLASS:{ *:[i32] } (VTOUIZH:{ *:[f32] } HPR:{ *:[f16] }:$a), GPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VTOUIZH,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::GPRRegClassID,
// GIR_Coverage, 2370,
GIR_Done,
// Label 2248: @119320
GIM_Try, /*On fail goto*//*Label 2249*/ 119427, // Rule ID 2726 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fp_to_uint:{ *:[i32] } SPR:{ *:[f32] }:$a) => (EXTRACT_SUBREG:{ *:[i32] } (VCVTf2ud:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/2, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTf2ud,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2726,
GIR_Done,
// Label 2249: @119427
GIM_Reject,
// Label 2230: @119428
GIM_Try, /*On fail goto*//*Label 2250*/ 119467, // Rule ID 1623 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fp_to_uint:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm) => (VCVTf2ud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2ud,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1623,
GIR_Done,
// Label 2250: @119467
GIM_Reject,
// Label 2231: @119468
GIM_Try, /*On fail goto*//*Label 2251*/ 119518, // Rule ID 5203 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fp_to_uint:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1) => (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCMPf32r,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // P0
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // v1
GIR_AddRegister, /*InsnID*/0, ARM::ZR, /*AddRegisterRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5203,
GIR_Done,
// Label 2251: @119518
GIM_Reject,
// Label 2232: @119519
GIM_Try, /*On fail goto*//*Label 2252*/ 119558, // Rule ID 1631 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fp_to_uint:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm) => (VCVTh2ud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2ud,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1631,
GIR_Done,
// Label 2252: @119558
GIM_Reject,
// Label 2233: @119559
GIM_Try, /*On fail goto*//*Label 2253*/ 119654,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2254*/ 119600, // Rule ID 1627 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fp_to_uint:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm) => (VCVTf2uq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTf2uq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1627,
GIR_Done,
// Label 2254: @119600
GIM_Try, /*On fail goto*//*Label 2255*/ 119653, // Rule ID 4194 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fp_to_uint:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) => (MVE_VCVTu32f32z:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu32f32z,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4194,
GIR_Done,
// Label 2255: @119653
GIM_Reject,
// Label 2253: @119654
GIM_Reject,
// Label 2234: @119655
GIM_Try, /*On fail goto*//*Label 2256*/ 119705, // Rule ID 5204 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::VCCRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fp_to_uint:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1) => (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCMPf16r,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // P0
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // v1
GIR_AddRegister, /*InsnID*/0, ARM::ZR, /*AddRegisterRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/1,
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 5204,
GIR_Done,
// Label 2256: @119705
GIM_Reject,
// Label 2235: @119706
GIM_Try, /*On fail goto*//*Label 2257*/ 119801,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2258*/ 119747, // Rule ID 1635 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fp_to_uint:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm) => (VCVTh2uq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTh2uq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1635,
GIR_Done,
// Label 2258: @119747
GIM_Try, /*On fail goto*//*Label 2259*/ 119800, // Rule ID 4190 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fp_to_uint:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) => (MVE_VCVTu16f16z:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTu16f16z,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4190,
GIR_Done,
// Label 2259: @119800
GIM_Reject,
// Label 2257: @119801
GIM_Reject,
// Label 2236: @119802
GIM_Reject,
// Label 42: @119803
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2267*/ 120384,
/*GILLT_s16*//*Label 2260*/ 119822,
/*GILLT_s32*//*Label 2261*/ 119878,
/*GILLT_s64*//*Label 2262*/ 120056, 0,
/*GILLT_v2s32*//*Label 2263*/ 120112, 0, 0,
/*GILLT_v4s16*//*Label 2264*/ 120152,
/*GILLT_v4s32*//*Label 2265*/ 120192, 0, 0, 0,
/*GILLT_v8s16*//*Label 2266*/ 120288,
// Label 2260: @119822
GIM_Try, /*On fail goto*//*Label 2268*/ 119877, // Rule ID 2346 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (sint_to_fp:{ *:[f16] } GPR:{ *:[i32] }:$a) => (VSITOH:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSITOH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2346,
GIR_Done,
// Label 2268: @119877
GIM_Reject,
// Label 2261: @119878
GIM_Try, /*On fail goto*//*Label 2269*/ 120055,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2270*/ 119935, // Rule ID 2344 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (VSITOS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSITOS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2344,
GIR_Done,
// Label 2270: @119935
GIM_Try, /*On fail goto*//*Label 2271*/ 120054, // Rule ID 2727 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (VCVTs2fd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), (COPY_TO_REGCLASS:{ *:[i32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTs2fd,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2727,
GIR_Done,
// Label 2271: @120054
GIM_Reject,
// Label 2269: @120055
GIM_Reject,
// Label 2262: @120056
GIM_Try, /*On fail goto*//*Label 2272*/ 120111, // Rule ID 2342 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) => (VSITOD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSITOD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2342,
GIR_Done,
// Label 2272: @120111
GIM_Reject,
// Label 2263: @120112
GIM_Try, /*On fail goto*//*Label 2273*/ 120151, // Rule ID 1624 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (sint_to_fp:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm) => (VCVTs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTs2fd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1624,
GIR_Done,
// Label 2273: @120151
GIM_Reject,
// Label 2264: @120152
GIM_Try, /*On fail goto*//*Label 2274*/ 120191, // Rule ID 1632 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (sint_to_fp:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm) => (VCVTs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTs2hd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1632,
GIR_Done,
// Label 2274: @120191
GIM_Reject,
// Label 2265: @120192
GIM_Try, /*On fail goto*//*Label 2275*/ 120287,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2276*/ 120233, // Rule ID 1628 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (sint_to_fp:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm) => (VCVTs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTs2fq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1628,
GIR_Done,
// Label 2276: @120233
GIM_Try, /*On fail goto*//*Label 2277*/ 120286, // Rule ID 4200 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (sint_to_fp:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VCVTf32s32n:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf32s32n,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4200,
GIR_Done,
// Label 2277: @120286
GIM_Reject,
// Label 2275: @120287
GIM_Reject,
// Label 2266: @120288
GIM_Try, /*On fail goto*//*Label 2278*/ 120383,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2279*/ 120329, // Rule ID 1636 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (sint_to_fp:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm) => (VCVTs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTs2hq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1636,
GIR_Done,
// Label 2279: @120329
GIM_Try, /*On fail goto*//*Label 2280*/ 120382, // Rule ID 4196 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (sint_to_fp:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) => (MVE_VCVTf16s16n:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf16s16n,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4196,
GIR_Done,
// Label 2280: @120382
GIM_Reject,
// Label 2278: @120383
GIM_Reject,
// Label 2267: @120384
GIM_Reject,
// Label 43: @120385
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2288*/ 120966,
/*GILLT_s16*//*Label 2281*/ 120404,
/*GILLT_s32*//*Label 2282*/ 120460,
/*GILLT_s64*//*Label 2283*/ 120638, 0,
/*GILLT_v2s32*//*Label 2284*/ 120694, 0, 0,
/*GILLT_v4s16*//*Label 2285*/ 120734,
/*GILLT_v4s32*//*Label 2286*/ 120774, 0, 0, 0,
/*GILLT_v8s16*//*Label 2287*/ 120870,
// Label 2281: @120404
GIM_Try, /*On fail goto*//*Label 2289*/ 120459, // Rule ID 2351 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (uint_to_fp:{ *:[f16] } GPR:{ *:[i32] }:$a) => (VUITOH:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUITOH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2351,
GIR_Done,
// Label 2289: @120459
GIM_Reject,
// Label 2282: @120460
GIM_Try, /*On fail goto*//*Label 2290*/ 120637,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2291*/ 120517, // Rule ID 2349 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (VUITOS:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUITOS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2349,
GIR_Done,
// Label 2291: @120517
GIM_Try, /*On fail goto*//*Label 2292*/ 120636, // Rule ID 2728 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (VCVTu2fd:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), (COPY_TO_REGCLASS:{ *:[i32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }), ssub_0:{ *:[i32] })), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/2, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VCVTu2fd,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2728,
GIR_Done,
// Label 2292: @120636
GIM_Reject,
// Label 2290: @120637
GIM_Reject,
// Label 2283: @120638
GIM_Try, /*On fail goto*//*Label 2293*/ 120693, // Rule ID 2347 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$a) => (VUITOD:{ *:[f64] } (COPY_TO_REGCLASS:{ *:[f32] } GPR:{ *:[i32] }:$a, SPR:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VUITOD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2347,
GIR_Done,
// Label 2293: @120693
GIM_Reject,
// Label 2284: @120694
GIM_Try, /*On fail goto*//*Label 2294*/ 120733, // Rule ID 1625 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (uint_to_fp:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm) => (VCVTu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTu2fd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1625,
GIR_Done,
// Label 2294: @120733
GIM_Reject,
// Label 2285: @120734
GIM_Try, /*On fail goto*//*Label 2295*/ 120773, // Rule ID 1633 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (uint_to_fp:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm) => (VCVTu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTu2hd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1633,
GIR_Done,
// Label 2295: @120773
GIM_Reject,
// Label 2286: @120774
GIM_Try, /*On fail goto*//*Label 2296*/ 120869,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2297*/ 120815, // Rule ID 1629 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (uint_to_fp:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm) => (VCVTu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTu2fq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1629,
GIR_Done,
// Label 2297: @120815
GIM_Try, /*On fail goto*//*Label 2298*/ 120868, // Rule ID 4202 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (uint_to_fp:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VCVTf32u32n:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf32u32n,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4202,
GIR_Done,
// Label 2298: @120868
GIM_Reject,
// Label 2296: @120869
GIM_Reject,
// Label 2287: @120870
GIM_Try, /*On fail goto*//*Label 2299*/ 120965,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2300*/ 120911, // Rule ID 1637 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (uint_to_fp:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm) => (VCVTu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCVTu2hq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1637,
GIR_Done,
// Label 2300: @120911
GIM_Try, /*On fail goto*//*Label 2301*/ 120964, // Rule ID 4198 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (uint_to_fp:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) => (MVE_VCVTf16u16n:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCVTf16u16n,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4198,
GIR_Done,
// Label 2301: @120964
GIM_Reject,
// Label 2299: @120965
GIM_Reject,
// Label 2288: @120966
GIM_Reject,
// Label 44: @120967
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2309*/ 121566,
/*GILLT_s16*//*Label 2302*/ 120986,
/*GILLT_s32*//*Label 2303*/ 121026,
/*GILLT_s64*//*Label 2304*/ 121204, 0,
/*GILLT_v2s32*//*Label 2305*/ 121244, 0, 0,
/*GILLT_v4s16*//*Label 2306*/ 121284,
/*GILLT_v4s32*//*Label 2307*/ 121324, 0, 0, 0,
/*GILLT_v8s16*//*Label 2308*/ 121445,
// Label 2302: @120986
GIM_Try, /*On fail goto*//*Label 2310*/ 121025, // Rule ID 669 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fabs:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VABSH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 669,
GIR_Done,
// Label 2310: @121025
GIM_Reject,
// Label 2303: @121026
GIM_Try, /*On fail goto*//*Label 2311*/ 121203,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2312*/ 121067, // Rule ID 668 //
GIM_CheckFeatures, GIFBS_DontUseNEONForFP_HasVFP2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fabs:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VABSS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 668,
GIR_Done,
// Label 2312: @121067
GIM_Try, /*On fail goto*//*Label 2313*/ 121202, // Rule ID 2719 //
GIM_CheckFeatures, GIFBS_HasNEON_UseNEONForFP,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fabs:{ *:[f32] } SPR:{ *:[f32] }:$a) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VABSfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VABSfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2719,
GIR_Done,
// Label 2313: @121202
GIM_Reject,
// Label 2311: @121203
GIM_Reject,
// Label 2304: @121204
GIM_Try, /*On fail goto*//*Label 2314*/ 121243, // Rule ID 667 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fabs:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VABSD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 667,
GIR_Done,
// Label 2314: @121243
GIM_Reject,
// Label 2305: @121244
GIM_Try, /*On fail goto*//*Label 2315*/ 121283, // Rule ID 1532 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fabs:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) => (VABSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1532,
GIR_Done,
// Label 2315: @121283
GIM_Reject,
// Label 2306: @121284
GIM_Try, /*On fail goto*//*Label 2316*/ 121323, // Rule ID 1534 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fabs:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) => (VABShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABShd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1534,
GIR_Done,
// Label 2316: @121323
GIM_Reject,
// Label 2307: @121324
GIM_Try, /*On fail goto*//*Label 2317*/ 121444,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2318*/ 121408, // Rule ID 4139 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FSUB,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fabs:{ *:[v4f32] } (fsub:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)) => (MVE_VABDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4139,
GIR_Done,
// Label 2318: @121408
GIM_Try, /*On fail goto*//*Label 2319*/ 121443, // Rule ID 1533 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fabs:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) => (VABSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1533,
GIR_Done,
// Label 2319: @121443
GIM_Reject,
// Label 2317: @121444
GIM_Reject,
// Label 2308: @121445
GIM_Try, /*On fail goto*//*Label 2320*/ 121565,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2321*/ 121529, // Rule ID 4138 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FSUB,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (fabs:{ *:[v8f16] } (fsub:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)) => (MVE_VABDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VABDf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4138,
GIR_Done,
// Label 2321: @121529
GIM_Try, /*On fail goto*//*Label 2322*/ 121564, // Rule ID 1535 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (fabs:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) => (VABShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABShq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1535,
GIR_Done,
// Label 2322: @121564
GIM_Reject,
// Label 2320: @121565
GIM_Reject,
// Label 2309: @121566
GIM_Reject,
// Label 45: @121567
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2330*/ 122086,
/*GILLT_s16*//*Label 2323*/ 121586,
/*GILLT_s32*//*Label 2324*/ 121618,
/*GILLT_s64*//*Label 2325*/ 121650, 0,
/*GILLT_v2s32*//*Label 2326*/ 121682, 0, 0,
/*GILLT_v4s16*//*Label 2327*/ 121714,
/*GILLT_v4s32*//*Label 2328*/ 121746, 0, 0, 0,
/*GILLT_v8s16*//*Label 2329*/ 121916,
// Label 2323: @121586
GIM_Try, /*On fail goto*//*Label 2331*/ 121617, // Rule ID 658 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (fminnum:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VFP_VMINNMH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VFP_VMINNMH,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 658,
GIR_Done,
// Label 2331: @121617
GIM_Reject,
// Label 2324: @121618
GIM_Try, /*On fail goto*//*Label 2332*/ 121649, // Rule ID 659 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fminnum:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VFP_VMINNMS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VFP_VMINNMS,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 659,
GIR_Done,
// Label 2332: @121649
GIM_Reject,
// Label 2325: @121650
GIM_Try, /*On fail goto*//*Label 2333*/ 121681, // Rule ID 660 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fminnum:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VFP_VMINNMD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VFP_VMINNMD,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 660,
GIR_Done,
// Label 2333: @121681
GIM_Reject,
// Label 2326: @121682
GIM_Try, /*On fail goto*//*Label 2334*/ 121713, // Rule ID 1251 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fminnum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (NEON_VMINNMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::NEON_VMINNMNDf,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1251,
GIR_Done,
// Label 2334: @121713
GIM_Reject,
// Label 2327: @121714
GIM_Try, /*On fail goto*//*Label 2335*/ 121745, // Rule ID 1253 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fminnum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (NEON_VMINNMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::NEON_VMINNMNDh,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1253,
GIR_Done,
// Label 2335: @121745
GIM_Reject,
// Label 2328: @121746
GIM_Try, /*On fail goto*//*Label 2336*/ 121915,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2337*/ 121830, // Rule ID 4220 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FABS,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fminnum:{ *:[v4f32] } (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd), (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm)) => (MVE_VMINNMAf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd, MQPR:{ *:[v4f32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINNMAf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4220,
GIR_Done,
// Label 2337: @121830
GIM_Try, /*On fail goto*//*Label 2338*/ 121853, // Rule ID 1252 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fminnum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (NEON_VMINNMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::NEON_VMINNMNQf,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1252,
GIR_Done,
// Label 2338: @121853
GIM_Try, /*On fail goto*//*Label 2339*/ 121914, // Rule ID 3382 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fminnum:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VMINNMf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINNMf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3382,
GIR_Done,
// Label 2339: @121914
GIM_Reject,
// Label 2336: @121915
GIM_Reject,
// Label 2329: @121916
GIM_Try, /*On fail goto*//*Label 2340*/ 122085,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2341*/ 122000, // Rule ID 4222 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FABS,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fminnum:{ *:[v8f16] } (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd), (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm)) => (MVE_VMINNMAf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd, MQPR:{ *:[v8f16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINNMAf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4222,
GIR_Done,
// Label 2341: @122000
GIM_Try, /*On fail goto*//*Label 2342*/ 122023, // Rule ID 1254 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fminnum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (NEON_VMINNMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::NEON_VMINNMNQh,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1254,
GIR_Done,
// Label 2342: @122023
GIM_Try, /*On fail goto*//*Label 2343*/ 122084, // Rule ID 3385 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fminnum:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VMINNMf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINNMf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3385,
GIR_Done,
// Label 2343: @122084
GIM_Reject,
// Label 2340: @122085
GIM_Reject,
// Label 2330: @122086
GIM_Reject,
// Label 46: @122087
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2351*/ 122606,
/*GILLT_s16*//*Label 2344*/ 122106,
/*GILLT_s32*//*Label 2345*/ 122138,
/*GILLT_s64*//*Label 2346*/ 122170, 0,
/*GILLT_v2s32*//*Label 2347*/ 122202, 0, 0,
/*GILLT_v4s16*//*Label 2348*/ 122234,
/*GILLT_v4s32*//*Label 2349*/ 122266, 0, 0, 0,
/*GILLT_v8s16*//*Label 2350*/ 122436,
// Label 2344: @122106
GIM_Try, /*On fail goto*//*Label 2352*/ 122137, // Rule ID 655 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (fmaxnum:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) => (VFP_VMAXNMH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VFP_VMAXNMH,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 655,
GIR_Done,
// Label 2352: @122137
GIM_Reject,
// Label 2345: @122138
GIM_Try, /*On fail goto*//*Label 2353*/ 122169, // Rule ID 656 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fmaxnum:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) => (VFP_VMAXNMS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VFP_VMAXNMS,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 656,
GIR_Done,
// Label 2353: @122169
GIM_Reject,
// Label 2346: @122170
GIM_Try, /*On fail goto*//*Label 2354*/ 122201, // Rule ID 657 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fmaxnum:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) => (VFP_VMAXNMD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VFP_VMAXNMD,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 657,
GIR_Done,
// Label 2354: @122201
GIM_Reject,
// Label 2347: @122202
GIM_Try, /*On fail goto*//*Label 2355*/ 122233, // Rule ID 1231 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fmaxnum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (NEON_VMAXNMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::NEON_VMAXNMNDf,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1231,
GIR_Done,
// Label 2355: @122233
GIM_Reject,
// Label 2348: @122234
GIM_Try, /*On fail goto*//*Label 2356*/ 122265, // Rule ID 1233 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fmaxnum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (NEON_VMAXNMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::NEON_VMAXNMNDh,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1233,
GIR_Done,
// Label 2356: @122265
GIM_Reject,
// Label 2349: @122266
GIM_Try, /*On fail goto*//*Label 2357*/ 122435,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2358*/ 122350, // Rule ID 4216 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FABS,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fmaxnum:{ *:[v4f32] } (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd), (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm)) => (MVE_VMAXNMAf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd, MQPR:{ *:[v4f32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXNMAf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4216,
GIR_Done,
// Label 2358: @122350
GIM_Try, /*On fail goto*//*Label 2359*/ 122373, // Rule ID 1232 //
GIM_CheckFeatures, GIFBS_HasNEON_HasV8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fmaxnum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (NEON_VMAXNMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::NEON_VMAXNMNQf,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1232,
GIR_Done,
// Label 2359: @122373
GIM_Try, /*On fail goto*//*Label 2360*/ 122434, // Rule ID 3124 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fmaxnum:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) => (MVE_VMAXNMf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXNMf32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3124,
GIR_Done,
// Label 2360: @122434
GIM_Reject,
// Label 2357: @122435
GIM_Reject,
// Label 2350: @122436
GIM_Try, /*On fail goto*//*Label 2361*/ 122605,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2362*/ 122520, // Rule ID 4218 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/1, /*OtherOpIdx*/1,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FABS,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
// (fmaxnum:{ *:[v8f16] } (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd), (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm)) => (MVE_VMAXNMAf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd, MQPR:{ *:[v8f16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXNMAf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4218,
GIR_Done,
// Label 2362: @122520
GIM_Try, /*On fail goto*//*Label 2363*/ 122543, // Rule ID 1234 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON_HasV8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fmaxnum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (NEON_VMAXNMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::NEON_VMAXNMNQh,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1234,
GIR_Done,
// Label 2363: @122543
GIM_Try, /*On fail goto*//*Label 2364*/ 122604, // Rule ID 3379 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (fmaxnum:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) => (MVE_VMAXNMf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXNMf16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3379,
GIR_Done,
// Label 2364: @122604
GIM_Reject,
// Label 2361: @122605
GIM_Reject,
// Label 2351: @122606
GIM_Reject,
// Label 47: @122607
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2371*/ 123260,
/*GILLT_s16*//*Label 2365*/ 122626,
/*GILLT_s32*//*Label 2366*/ 122839, 0, 0,
/*GILLT_v2s32*//*Label 2367*/ 123052, 0, 0,
/*GILLT_v4s16*//*Label 2368*/ 123104,
/*GILLT_v4s32*//*Label 2369*/ 123156, 0, 0, 0,
/*GILLT_v8s16*//*Label 2370*/ 123208,
// Label 2365: @122626
GIM_Try, /*On fail goto*//*Label 2372*/ 122838, // Rule ID 2722 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (fminimum:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b) => (EXTRACT_SUBREG:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (VMINhd:{ *:[f64] } (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v4s16,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::HPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::HPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VMINhd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2722,
GIR_Done,
// Label 2372: @122838
GIM_Reject,
// Label 2366: @122839
GIM_Try, /*On fail goto*//*Label 2373*/ 123051, // Rule ID 2724 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fminimum:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMINfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VMINfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2724,
GIR_Done,
// Label 2373: @123051
GIM_Reject,
// Label 2367: @123052
GIM_Try, /*On fail goto*//*Label 2374*/ 123103, // Rule ID 1247 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fminimum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VMINfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1247,
GIR_Done,
// Label 2374: @123103
GIM_Reject,
// Label 2368: @123104
GIM_Try, /*On fail goto*//*Label 2375*/ 123155, // Rule ID 1249 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fminimum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VMINhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1249,
GIR_Done,
// Label 2375: @123155
GIM_Reject,
// Label 2369: @123156
GIM_Try, /*On fail goto*//*Label 2376*/ 123207, // Rule ID 1248 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fminimum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VMINfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1248,
GIR_Done,
// Label 2376: @123207
GIM_Reject,
// Label 2370: @123208
GIM_Try, /*On fail goto*//*Label 2377*/ 123259, // Rule ID 1250 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fminimum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VMINhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1250,
GIR_Done,
// Label 2377: @123259
GIM_Reject,
// Label 2371: @123260
GIM_Reject,
// Label 48: @123261
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2384*/ 123914,
/*GILLT_s16*//*Label 2378*/ 123280,
/*GILLT_s32*//*Label 2379*/ 123493, 0, 0,
/*GILLT_v2s32*//*Label 2380*/ 123706, 0, 0,
/*GILLT_v4s16*//*Label 2381*/ 123758,
/*GILLT_v4s32*//*Label 2382*/ 123810, 0, 0, 0,
/*GILLT_v8s16*//*Label 2383*/ 123862,
// Label 2378: @123280
GIM_Try, /*On fail goto*//*Label 2385*/ 123492, // Rule ID 2721 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::HPRRegClassID,
// (fmaximum:{ *:[f16] } HPR:{ *:[f16] }:$a, HPR:{ *:[f16] }:$b) => (EXTRACT_SUBREG:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (VMAXhd:{ *:[f64] } (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v4f16] } (COPY_TO_REGCLASS:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), DPR_VFP2:{ *:[i32] }), HPR:{ *:[f16] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v4s16,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v4s16,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::HPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::HPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VMAXhd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2721,
GIR_Done,
// Label 2385: @123492
GIM_Reject,
// Label 2379: @123493
GIM_Try, /*On fail goto*//*Label 2386*/ 123705, // Rule ID 2723 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPR_VFP2RegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::SPRRegClassID,
// (fmaximum:{ *:[f32] } SPR:{ *:[f32] }:$a, SPR:{ *:[f32] }:$b) => (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (VMAXfd:{ *:[f64] } (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$a, ssub_0:{ *:[i32] }), (INSERT_SUBREG:{ *:[v2f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), DPR_VFP2:{ *:[i32] }), SPR:{ *:[f32] }:$b, ssub_0:{ *:[i32] })), DPR_VFP2:{ *:[i32] }), ssub_0:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/6, /*TypeID*/GILLT_v2s32,
GIR_MakeTempReg, /*TempRegID*/7, /*TypeID*/GILLT_v2s32,
GIR_BuildMI, /*InsnID*/8, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/8, /*TempRegID*/7, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/8,
GIR_BuildMI, /*InsnID*/7, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/6, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/7, /*TempRegID*/7, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/7,
GIR_BuildMI, /*InsnID*/6, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/5, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/6, /*TempRegID*/6, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/6, /*OldInsnID*/0, /*OpIdx*/2, // b
GIR_AddImm, /*InsnID*/6, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/6, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/5, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/5, /*TempRegID*/4, /*TempRegFlags*/RegState::Define,
GIR_ConstrainSelectedInstOperands, /*InsnID*/5,
GIR_BuildMI, /*InsnID*/4, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/3, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/4, /*TempRegID*/4, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/4,
GIR_BuildMI, /*InsnID*/3, /*Opcode*/TargetOpcode::INSERT_SUBREG,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/3, /*TempRegFlags*/0,
GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/1, // a
GIR_AddImm, /*InsnID*/3, /*Imm*/17,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/0, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/1, ARM::DPR_VFP2RegClassID,
GIR_ConstrainOperandRC, /*InsnID*/3, /*Op*/2, ARM::SPRRegClassID,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/ARM::VMAXfd,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/2, /*TempRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/5, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/2, /*Imm*/14,
GIR_AddRegister, /*InsnID*/2, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::COPY,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempSubRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0, ARM::ssub_0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::SPRRegClassID,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/1, ARM::DPR_VFP2RegClassID,
// GIR_Coverage, 2723,
GIR_Done,
// Label 2386: @123705
GIM_Reject,
// Label 2380: @123706
GIM_Try, /*On fail goto*//*Label 2387*/ 123757, // Rule ID 1227 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fmaximum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) => (VMAXfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXfd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1227,
GIR_Done,
// Label 2387: @123757
GIM_Reject,
// Label 2381: @123758
GIM_Try, /*On fail goto*//*Label 2388*/ 123809, // Rule ID 1229 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (fmaximum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) => (VMAXhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXhd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1229,
GIR_Done,
// Label 2388: @123809
GIM_Reject,
// Label 2382: @123810
GIM_Try, /*On fail goto*//*Label 2389*/ 123861, // Rule ID 1228 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fmaximum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) => (VMAXfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXfq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1228,
GIR_Done,
// Label 2389: @123861
GIM_Reject,
// Label 2383: @123862
GIM_Try, /*On fail goto*//*Label 2390*/ 123913, // Rule ID 1230 //
GIM_CheckFeatures, GIFBS_HasFullFP16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (fmaximum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) => (VMAXhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXhq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1230,
GIR_Done,
// Label 2390: @123913
GIM_Reject,
// Label 2384: @123914
GIM_Reject,
// Label 49: @123915
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 16, /*)*//*default:*//*Label 2397*/ 124437,
/*GILLT_v2s32*//*Label 2391*/ 123933, 0, 0,
/*GILLT_v4s16*//*Label 2392*/ 123985,
/*GILLT_v4s32*//*Label 2393*/ 124037, 0, 0,
/*GILLT_v8s8*//*Label 2394*/ 124153,
/*GILLT_v8s16*//*Label 2395*/ 124205, 0, 0,
/*GILLT_v16s8*//*Label 2396*/ 124321,
// Label 2391: @123933
GIM_Try, /*On fail goto*//*Label 2398*/ 123984, // Rule ID 1236 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (smin:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMINsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1236,
GIR_Done,
// Label 2398: @123984
GIM_Reject,
// Label 2392: @123985
GIM_Try, /*On fail goto*//*Label 2399*/ 124036, // Rule ID 1235 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (smin:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMINsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1235,
GIR_Done,
// Label 2399: @124036
GIM_Reject,
// Label 2393: @124037
GIM_Try, /*On fail goto*//*Label 2400*/ 124152,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2401*/ 124090, // Rule ID 1238 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (smin:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMINsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1238,
GIR_Done,
// Label 2401: @124090
GIM_Try, /*On fail goto*//*Label 2402*/ 124151, // Rule ID 3394 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (smin:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMINs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3394,
GIR_Done,
// Label 2402: @124151
GIM_Reject,
// Label 2400: @124152
GIM_Reject,
// Label 2394: @124153
GIM_Try, /*On fail goto*//*Label 2403*/ 124204, // Rule ID 1239 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (smin:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMINsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1239,
GIR_Done,
// Label 2403: @124204
GIM_Reject,
// Label 2395: @124205
GIM_Try, /*On fail goto*//*Label 2404*/ 124320,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2405*/ 124258, // Rule ID 1237 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (smin:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMINsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1237,
GIR_Done,
// Label 2405: @124258
GIM_Try, /*On fail goto*//*Label 2406*/ 124319, // Rule ID 3391 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (smin:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMINs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3391,
GIR_Done,
// Label 2406: @124319
GIM_Reject,
// Label 2404: @124320
GIM_Reject,
// Label 2396: @124321
GIM_Try, /*On fail goto*//*Label 2407*/ 124436,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 2408*/ 124374, // Rule ID 1240 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (smin:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMINsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1240,
GIR_Done,
// Label 2408: @124374
GIM_Try, /*On fail goto*//*Label 2409*/ 124435, // Rule ID 3388 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (smin:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMINs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3388,
GIR_Done,
// Label 2409: @124435
GIM_Reject,
// Label 2407: @124436
GIM_Reject,
// Label 2397: @124437
GIM_Reject,
// Label 50: @124438
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 16, /*)*//*default:*//*Label 2416*/ 124960,
/*GILLT_v2s32*//*Label 2410*/ 124456, 0, 0,
/*GILLT_v4s16*//*Label 2411*/ 124508,
/*GILLT_v4s32*//*Label 2412*/ 124560, 0, 0,
/*GILLT_v8s8*//*Label 2413*/ 124676,
/*GILLT_v8s16*//*Label 2414*/ 124728, 0, 0,
/*GILLT_v16s8*//*Label 2415*/ 124844,
// Label 2410: @124456
GIM_Try, /*On fail goto*//*Label 2417*/ 124507, // Rule ID 1216 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (smax:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMAXsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXsv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1216,
GIR_Done,
// Label 2417: @124507
GIM_Reject,
// Label 2411: @124508
GIM_Try, /*On fail goto*//*Label 2418*/ 124559, // Rule ID 1215 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (smax:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMAXsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXsv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1215,
GIR_Done,
// Label 2418: @124559
GIM_Reject,
// Label 2412: @124560
GIM_Try, /*On fail goto*//*Label 2419*/ 124675,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2420*/ 124613, // Rule ID 1218 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (smax:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMAXsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXsv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1218,
GIR_Done,
// Label 2420: @124613
GIM_Try, /*On fail goto*//*Label 2421*/ 124674, // Rule ID 3412 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (smax:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMAXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3412,
GIR_Done,
// Label 2421: @124674
GIM_Reject,
// Label 2419: @124675
GIM_Reject,
// Label 2413: @124676
GIM_Try, /*On fail goto*//*Label 2422*/ 124727, // Rule ID 1219 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (smax:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMAXsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXsv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1219,
GIR_Done,
// Label 2422: @124727
GIM_Reject,
// Label 2414: @124728
GIM_Try, /*On fail goto*//*Label 2423*/ 124843,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2424*/ 124781, // Rule ID 1217 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (smax:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMAXsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXsv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1217,
GIR_Done,
// Label 2424: @124781
GIM_Try, /*On fail goto*//*Label 2425*/ 124842, // Rule ID 3409 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (smax:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMAXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3409,
GIR_Done,
// Label 2425: @124842
GIM_Reject,
// Label 2423: @124843
GIM_Reject,
// Label 2415: @124844
GIM_Try, /*On fail goto*//*Label 2426*/ 124959,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 2427*/ 124897, // Rule ID 1220 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (smax:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMAXsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXsv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1220,
GIR_Done,
// Label 2427: @124897
GIM_Try, /*On fail goto*//*Label 2428*/ 124958, // Rule ID 3406 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (smax:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMAXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3406,
GIR_Done,
// Label 2428: @124958
GIM_Reject,
// Label 2426: @124959
GIM_Reject,
// Label 2416: @124960
GIM_Reject,
// Label 51: @124961
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 16, /*)*//*default:*//*Label 2435*/ 125849,
/*GILLT_v2s32*//*Label 2429*/ 124979, 0, 0,
/*GILLT_v4s16*//*Label 2430*/ 125031,
/*GILLT_v4s32*//*Label 2431*/ 125083, 0, 0,
/*GILLT_v8s8*//*Label 2432*/ 125321,
/*GILLT_v8s16*//*Label 2433*/ 125373, 0, 0,
/*GILLT_v16s8*//*Label 2434*/ 125611,
// Label 2429: @124979
GIM_Try, /*On fail goto*//*Label 2436*/ 125030, // Rule ID 1242 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (umin:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMINuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1242,
GIR_Done,
// Label 2436: @125030
GIM_Reject,
// Label 2430: @125031
GIM_Try, /*On fail goto*//*Label 2437*/ 125082, // Rule ID 1241 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (umin:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMINuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1241,
GIR_Done,
// Label 2437: @125082
GIM_Reject,
// Label 2431: @125083
GIM_Try, /*On fail goto*//*Label 2438*/ 125320,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2439*/ 125154, // Rule ID 6142 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umin:{ *:[v4i32] } (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm), MQPR:{ *:[v4i32] }:$Qd) => (MVE_VMINAs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 6142,
GIR_Done,
// Label 2439: @125154
GIM_Try, /*On fail goto*//*Label 2440*/ 125215, // Rule ID 3809 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umin:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm)) => (MVE_VMINAs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3809,
GIR_Done,
// Label 2440: @125215
GIM_Try, /*On fail goto*//*Label 2441*/ 125258, // Rule ID 1244 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (umin:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMINuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1244,
GIR_Done,
// Label 2441: @125258
GIM_Try, /*On fail goto*//*Label 2442*/ 125319, // Rule ID 3403 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (umin:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMINu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3403,
GIR_Done,
// Label 2442: @125319
GIM_Reject,
// Label 2438: @125320
GIM_Reject,
// Label 2432: @125321
GIM_Try, /*On fail goto*//*Label 2443*/ 125372, // Rule ID 1245 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (umin:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMINuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1245,
GIR_Done,
// Label 2443: @125372
GIM_Reject,
// Label 2433: @125373
GIM_Try, /*On fail goto*//*Label 2444*/ 125610,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2445*/ 125444, // Rule ID 6141 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umin:{ *:[v8i16] } (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm), MQPR:{ *:[v8i16] }:$Qd) => (MVE_VMINAs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 6141,
GIR_Done,
// Label 2445: @125444
GIM_Try, /*On fail goto*//*Label 2446*/ 125505, // Rule ID 3807 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umin:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm)) => (MVE_VMINAs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3807,
GIR_Done,
// Label 2446: @125505
GIM_Try, /*On fail goto*//*Label 2447*/ 125548, // Rule ID 1243 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (umin:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMINuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1243,
GIR_Done,
// Label 2447: @125548
GIM_Try, /*On fail goto*//*Label 2448*/ 125609, // Rule ID 3400 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (umin:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMINu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3400,
GIR_Done,
// Label 2448: @125609
GIM_Reject,
// Label 2444: @125610
GIM_Reject,
// Label 2434: @125611
GIM_Try, /*On fail goto*//*Label 2449*/ 125848,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 2450*/ 125682, // Rule ID 6140 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umin:{ *:[v16i8] } (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm), MQPR:{ *:[v16i8] }:$Qd) => (MVE_VMINAs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 6140,
GIR_Done,
// Label 2450: @125682
GIM_Try, /*On fail goto*//*Label 2451*/ 125743, // Rule ID 3805 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umin:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm)) => (MVE_VMINAs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINAs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3805,
GIR_Done,
// Label 2451: @125743
GIM_Try, /*On fail goto*//*Label 2452*/ 125786, // Rule ID 1246 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (umin:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMINuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMINuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1246,
GIR_Done,
// Label 2452: @125786
GIM_Try, /*On fail goto*//*Label 2453*/ 125847, // Rule ID 3397 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (umin:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMINu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMINu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3397,
GIR_Done,
// Label 2453: @125847
GIM_Reject,
// Label 2449: @125848
GIM_Reject,
// Label 2435: @125849
GIM_Reject,
// Label 52: @125850
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 16, /*)*//*default:*//*Label 2460*/ 126738,
/*GILLT_v2s32*//*Label 2454*/ 125868, 0, 0,
/*GILLT_v4s16*//*Label 2455*/ 125920,
/*GILLT_v4s32*//*Label 2456*/ 125972, 0, 0,
/*GILLT_v8s8*//*Label 2457*/ 126210,
/*GILLT_v8s16*//*Label 2458*/ 126262, 0, 0,
/*GILLT_v16s8*//*Label 2459*/ 126500,
// Label 2454: @125868
GIM_Try, /*On fail goto*//*Label 2461*/ 125919, // Rule ID 1222 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (umax:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) => (VMAXuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXuv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1222,
GIR_Done,
// Label 2461: @125919
GIM_Reject,
// Label 2455: @125920
GIM_Try, /*On fail goto*//*Label 2462*/ 125971, // Rule ID 1221 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (umax:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) => (VMAXuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXuv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1221,
GIR_Done,
// Label 2462: @125971
GIM_Reject,
// Label 2456: @125972
GIM_Try, /*On fail goto*//*Label 2463*/ 126209,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2464*/ 126043, // Rule ID 6145 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umax:{ *:[v4i32] } (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm), MQPR:{ *:[v4i32] }:$Qd) => (MVE_VMAXAs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 6145,
GIR_Done,
// Label 2464: @126043
GIM_Try, /*On fail goto*//*Label 2465*/ 126104, // Rule ID 3815 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umax:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm)) => (MVE_VMAXAs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qd, MQPR:{ *:[v4i32] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3815,
GIR_Done,
// Label 2465: @126104
GIM_Try, /*On fail goto*//*Label 2466*/ 126147, // Rule ID 1224 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (umax:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) => (VMAXuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1224,
GIR_Done,
// Label 2466: @126147
GIM_Try, /*On fail goto*//*Label 2467*/ 126208, // Rule ID 3421 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (umax:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) => (MVE_VMAXu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXu32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3421,
GIR_Done,
// Label 2467: @126208
GIM_Reject,
// Label 2463: @126209
GIM_Reject,
// Label 2457: @126210
GIM_Try, /*On fail goto*//*Label 2468*/ 126261, // Rule ID 1225 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::DPRRegClassID,
// (umax:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) => (VMAXuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXuv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1225,
GIR_Done,
// Label 2468: @126261
GIM_Reject,
// Label 2458: @126262
GIM_Try, /*On fail goto*//*Label 2469*/ 126499,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2470*/ 126333, // Rule ID 6144 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umax:{ *:[v8i16] } (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm), MQPR:{ *:[v8i16] }:$Qd) => (MVE_VMAXAs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 6144,
GIR_Done,
// Label 2470: @126333
GIM_Try, /*On fail goto*//*Label 2471*/ 126394, // Rule ID 3813 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umax:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm)) => (MVE_VMAXAs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd, MQPR:{ *:[v8i16] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3813,
GIR_Done,
// Label 2471: @126394
GIM_Try, /*On fail goto*//*Label 2472*/ 126437, // Rule ID 1223 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (umax:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) => (VMAXuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1223,
GIR_Done,
// Label 2472: @126437
GIM_Try, /*On fail goto*//*Label 2473*/ 126498, // Rule ID 3418 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (umax:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) => (MVE_VMAXu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXu16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3418,
GIR_Done,
// Label 2473: @126498
GIM_Reject,
// Label 2469: @126499
GIM_Reject,
// Label 2459: @126500
GIM_Try, /*On fail goto*//*Label 2474*/ 126737,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 2475*/ 126571, // Rule ID 6143 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umax:{ *:[v16i8] } (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm), MQPR:{ *:[v16i8] }:$Qd) => (MVE_VMAXAs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 6143,
GIR_Done,
// Label 2475: @126571
GIM_Try, /*On fail goto*//*Label 2476*/ 126632, // Rule ID 3811 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckIsSameOperand, /*MI*/0, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ABS,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (umax:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm)) => (MVE_VMAXAs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd, MQPR:{ *:[v16i8] }:$Qm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXAs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // Qm
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3811,
GIR_Done,
// Label 2476: @126632
GIM_Try, /*On fail goto*//*Label 2477*/ 126675, // Rule ID 1226 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::QPRRegClassID,
// (umax:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) => (VMAXuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VMAXuv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vn
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1226,
GIR_Done,
// Label 2477: @126675
GIM_Try, /*On fail goto*//*Label 2478*/ 126736, // Rule ID 3415 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/ARM::MQPRRegClassID,
// (umax:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) => (MVE_VMAXu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VMAXu8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Qm
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // Qn
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3415,
GIR_Done,
// Label 2478: @126736
GIM_Reject,
// Label 2474: @126737
GIM_Reject,
// Label 2460: @126738
GIM_Reject,
// Label 53: @126739
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/4, 16, /*)*//*default:*//*Label 2485*/ 127167,
/*GILLT_v2s32*//*Label 2479*/ 126757, 0, 0,
/*GILLT_v4s16*//*Label 2480*/ 126797,
/*GILLT_v4s32*//*Label 2481*/ 126837, 0, 0,
/*GILLT_v8s8*//*Label 2482*/ 126962,
/*GILLT_v8s16*//*Label 2483*/ 127002, 0, 0,
/*GILLT_v16s8*//*Label 2484*/ 127127,
// Label 2479: @126757
GIM_Try, /*On fail goto*//*Label 2486*/ 126796, // Rule ID 1528 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (abs:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) => (VABSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1528,
GIR_Done,
// Label 2486: @126796
GIM_Reject,
// Label 2480: @126797
GIM_Try, /*On fail goto*//*Label 2487*/ 126836, // Rule ID 1527 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (abs:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) => (VABSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1527,
GIR_Done,
// Label 2487: @126836
GIM_Reject,
// Label 2481: @126837
GIM_Try, /*On fail goto*//*Label 2488*/ 126961,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2489*/ 126929, // Rule ID 2573 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v4s32,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (abs:{ *:[v4i32] } (sub:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$opA), (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$opB))) => (VABDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$opA, DPR:{ *:[v4i16] }:$opB)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLuv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // opA
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // opB
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2573,
GIR_Done,
// Label 2489: @126929
GIM_Try, /*On fail goto*//*Label 2490*/ 126960, // Rule ID 1531 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (abs:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) => (VABSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1531,
GIR_Done,
// Label 2490: @126960
GIM_Reject,
// Label 2488: @126961
GIM_Reject,
// Label 2482: @126962
GIM_Try, /*On fail goto*//*Label 2491*/ 127001, // Rule ID 1526 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (abs:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) => (VABSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1526,
GIR_Done,
// Label 2491: @127001
GIM_Reject,
// Label 2483: @127002
GIM_Try, /*On fail goto*//*Label 2492*/ 127126,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_Try, /*On fail goto*//*Label 2493*/ 127094, // Rule ID 2572 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_SUB,
GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_v8s16,
GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
GIM_CheckOpcode, /*MI*/3, TargetOpcode::G_ZEXT,
GIM_CheckType, /*MI*/3, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/3, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_CheckIsSafeToFold, /*InsnID*/1,
GIM_CheckIsSafeToFold, /*InsnID*/2,
GIM_CheckIsSafeToFold, /*InsnID*/3,
// (abs:{ *:[v8i16] } (sub:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$opA), (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$opB))) => (VABDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$opA, DPR:{ *:[v8i8] }:$opB)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABDLuv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // opA
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // opB
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 2572,
GIR_Done,
// Label 2493: @127094
GIM_Try, /*On fail goto*//*Label 2494*/ 127125, // Rule ID 1530 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (abs:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) => (VABSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1530,
GIR_Done,
// Label 2494: @127125
GIM_Reject,
// Label 2492: @127126
GIM_Reject,
// Label 2484: @127127
GIM_Try, /*On fail goto*//*Label 2495*/ 127166, // Rule ID 1529 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (abs:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) => (VABSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VABSv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1529,
GIR_Done,
// Label 2495: @127166
GIM_Reject,
// Label 2485: @127167
GIM_Reject,
// Label 54: @127168
GIM_Try, /*On fail goto*//*Label 2496*/ 127231,
GIM_CheckIsMBB, /*MI*/0, /*Op*/0,
GIM_Try, /*On fail goto*//*Label 2497*/ 127184, // Rule ID 32 //
GIM_CheckFeatures, GIFBS_IsARM,
// (br (bb:{ *:[Other] }):$target) => (B (bb:{ *:[Other] }):$target)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::B,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 32,
GIR_Done,
// Label 2497: @127184
GIM_Try, /*On fail goto*//*Label 2498*/ 127207, // Rule ID 290 //
GIM_CheckFeatures, GIFBS_IsThumb_IsThumb1Only,
// (br (bb:{ *:[Other] }):$target) => (tB (bb:{ *:[Other] }):$target)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tB,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // target
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 290,
GIR_Done,
// Label 2498: @127207
GIM_Try, /*On fail goto*//*Label 2499*/ 127230, // Rule ID 593 //
GIM_CheckFeatures, GIFBS_HasV8MBaseline_IsThumb,
// (br (bb:{ *:[Other] }):$target) => (t2B (bb:{ *:[Other] }):$target)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2B,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // target
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 593,
GIR_Done,
// Label 2499: @127230
GIM_Reject,
// Label 2496: @127231
GIM_Reject,
// Label 55: @127232
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 2502*/ 127373,
/*GILLT_s16*//*Label 2500*/ 127240,
/*GILLT_s32*//*Label 2501*/ 127317,
// Label 2500: @127240
GIM_Try, /*On fail goto*//*Label 2503*/ 127316, // Rule ID 2631 //
GIM_CheckFeatures, GIFBS_HasBF16_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_imm_odd,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (extractelt:{ *:[bf16] } DPR:{ *:[v4bf16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm_odd>>:$lane) => (COPY_TO_REGCLASS:{ *:[bf16] } (VGETLNu16:{ *:[i32] } DPR:{ *:[v4bf16] }:$src, (imm:{ *:[i32] }):$lane), HPR:{ *:[i32] })
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::VGETLNu16,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_CopyConstantAsSImm, /*NewInsnID*/1, /*OldInsnID*/1, // lane
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/TargetOpcode::COPY,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, ARM::HPRRegClassID,
// GIR_Coverage, 2631,
GIR_Done,
// Label 2503: @127316
GIM_Reject,
// Label 2501: @127317
GIM_Try, /*On fail goto*//*Label 2504*/ 127372, // Rule ID 1588 //
GIM_CheckFeatures, GIFBS_HasFPRegs_HasFastVGETLNi32,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
// MIs[1] Operand 1
// No operand predicates
GIM_CheckIsSafeToFold, /*InsnID*/1,
// (extractelt:{ *:[i32] } DPR:{ *:[v2i32] }:$V, (imm:{ *:[i32] }):$lane) => (VGETLNi32:{ *:[i32] } DPR:{ *:[v2i32] }:$V, (imm:{ *:[i32] }):$lane)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VGETLNi32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // R
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // V
GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // lane
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1588,
GIR_Done,
// Label 2504: @127372
GIM_Reject,
// Label 2502: @127373
GIM_Reject,
// Label 56: @127374
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 2512*/ 127881,
/*GILLT_s32*//*Label 2505*/ 127395, 0, 0,
/*GILLT_v2s32*//*Label 2506*/ 127473, 0, 0,
/*GILLT_v4s16*//*Label 2507*/ 127513,
/*GILLT_v4s32*//*Label 2508*/ 127553, 0, 0,
/*GILLT_v8s8*//*Label 2509*/ 127649,
/*GILLT_v8s16*//*Label 2510*/ 127689, 0, 0,
/*GILLT_v16s8*//*Label 2511*/ 127785,
// Label 2505: @127395
GIM_Try, /*On fail goto*//*Label 2513*/ 127472,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2514*/ 127436, // Rule ID 197 //
GIM_CheckFeatures, GIFBS_HasV5T_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (ctlz:{ *:[i32] } GPR:{ *:[i32] }:$Rm) => (CLZ:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::CLZ,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 197,
GIR_Done,
// Label 2514: @127436
GIM_Try, /*On fail goto*//*Label 2515*/ 127471, // Rule ID 541 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// (ctlz:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) => (t2CLZ:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2CLZ,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 541,
GIR_Done,
// Label 2515: @127471
GIM_Reject,
// Label 2513: @127472
GIM_Reject,
// Label 2506: @127473
GIM_Try, /*On fail goto*//*Label 2516*/ 127512, // Rule ID 1566 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v2s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (ctlz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) => (VCLZv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv2i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1566,
GIR_Done,
// Label 2516: @127512
GIM_Reject,
// Label 2507: @127513
GIM_Try, /*On fail goto*//*Label 2517*/ 127552, // Rule ID 1565 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (ctlz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) => (VCLZv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv4i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1565,
GIR_Done,
// Label 2517: @127552
GIM_Reject,
// Label 2508: @127553
GIM_Try, /*On fail goto*//*Label 2518*/ 127648,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_Try, /*On fail goto*//*Label 2519*/ 127594, // Rule ID 1569 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (ctlz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) => (VCLZv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv4i32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1569,
GIR_Done,
// Label 2519: @127594
GIM_Try, /*On fail goto*//*Label 2520*/ 127647, // Rule ID 3770 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (ctlz:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val) => (MVE_VCLZs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCLZs32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3770,
GIR_Done,
// Label 2520: @127647
GIM_Reject,
// Label 2518: @127648
GIM_Reject,
// Label 2509: @127649
GIM_Try, /*On fail goto*//*Label 2521*/ 127688, // Rule ID 1564 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (ctlz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) => (VCLZv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv8i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1564,
GIR_Done,
// Label 2521: @127688
GIM_Reject,
// Label 2510: @127689
GIM_Try, /*On fail goto*//*Label 2522*/ 127784,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_Try, /*On fail goto*//*Label 2523*/ 127730, // Rule ID 1568 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (ctlz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) => (VCLZv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv8i16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1568,
GIR_Done,
// Label 2523: @127730
GIM_Try, /*On fail goto*//*Label 2524*/ 127783, // Rule ID 3768 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (ctlz:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val) => (MVE_VCLZs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCLZs16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3768,
GIR_Done,
// Label 2524: @127783
GIM_Reject,
// Label 2522: @127784
GIM_Reject,
// Label 2511: @127785
GIM_Try, /*On fail goto*//*Label 2525*/ 127880,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_Try, /*On fail goto*//*Label 2526*/ 127826, // Rule ID 1567 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (ctlz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) => (VCLZv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCLZv16i8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1567,
GIR_Done,
// Label 2526: @127826
GIM_Try, /*On fail goto*//*Label 2527*/ 127879, // Rule ID 3766 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (ctlz:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val) => (MVE_VCLZs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VCLZs8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3766,
GIR_Done,
// Label 2527: @127879
GIM_Reject,
// Label 2525: @127880
GIM_Reject,
// Label 2512: @127881
GIM_Reject,
// Label 57: @127882
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/11, 16, /*)*//*default:*//*Label 2530*/ 127973,
/*GILLT_v8s8*//*Label 2528*/ 127893, 0, 0, 0,
/*GILLT_v16s8*//*Label 2529*/ 127933,
// Label 2528: @127893
GIM_Try, /*On fail goto*//*Label 2531*/ 127932, // Rule ID 1570 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (ctpop:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) => (VCNTd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCNTd,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1570,
GIR_Done,
// Label 2531: @127932
GIM_Reject,
// Label 2529: @127933
GIM_Try, /*On fail goto*//*Label 2532*/ 127972, // Rule ID 1571 //
GIM_CheckFeatures, GIFBS_HasNEON,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::QPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::QPRRegClassID,
// (ctpop:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) => (VCNTq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VCNTq,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Vd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Vm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 1571,
GIR_Done,
// Label 2532: @127972
GIM_Reject,
// Label 2530: @127973
GIM_Reject,
// Label 58: @127974
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 13, /*)*//*default:*//*Label 2536*/ 128221,
/*GILLT_s32*//*Label 2533*/ 127992, 0, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 2534*/ 128105, 0, 0, 0,
/*GILLT_v8s16*//*Label 2535*/ 128163,
// Label 2533: @127992
GIM_Try, /*On fail goto*//*Label 2537*/ 128104,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2538*/ 128033, // Rule ID 199 //
GIM_CheckFeatures, GIFBS_HasV6_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (bswap:{ *:[i32] } GPR:{ *:[i32] }:$Rm) => (REV:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::REV,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 199,
GIR_Done,
// Label 2538: @128033
GIM_Try, /*On fail goto*//*Label 2539*/ 128068, // Rule ID 333 //
GIM_CheckFeatures, GIFBS_HasV6_IsThumb_IsThumb1Only,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::tGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::tGPRRegClassID,
// (bswap:{ *:[i32] } tGPR:{ *:[i32] }:$Rm) => (tREV:{ *:[i32] } tGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::tREV,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 333,
GIR_Done,
// Label 2539: @128068
GIM_Try, /*On fail goto*//*Label 2540*/ 128103, // Rule ID 543 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// (bswap:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) => (t2REV:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2REV,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 543,
GIR_Done,
// Label 2540: @128103
GIM_Reject,
// Label 2537: @128104
GIM_Reject,
// Label 2534: @128105
GIM_Try, /*On fail goto*//*Label 2541*/ 128162, // Rule ID 3425 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bswap:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src) => (MVE_VREV32_8:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV32_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3425,
GIR_Done,
// Label 2541: @128162
GIM_Reject,
// Label 2535: @128163
GIM_Try, /*On fail goto*//*Label 2542*/ 128220, // Rule ID 3424 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bswap:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src) => (MVE_VREV16_8:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VREV16_8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 3424,
GIR_Done,
// Label 2542: @128220
GIM_Reject,
// Label 2536: @128221
GIM_Reject,
// Label 59: @128222
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/1, 16, /*)*//*default:*//*Label 2547*/ 128585,
/*GILLT_s32*//*Label 2543*/ 128243, 0, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 2544*/ 128321, 0, 0, 0,
/*GILLT_v8s16*//*Label 2545*/ 128409, 0, 0,
/*GILLT_v16s8*//*Label 2546*/ 128497,
// Label 2543: @128243
GIM_Try, /*On fail goto*//*Label 2548*/ 128320,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_Try, /*On fail goto*//*Label 2549*/ 128284, // Rule ID 198 //
GIM_CheckFeatures, GIFBS_HasV6T2_IsARM,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::GPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::GPRRegClassID,
// (bitreverse:{ *:[i32] } GPR:{ *:[i32] }:$Rm) => (RBIT:{ *:[i32] } GPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::RBIT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 198,
GIR_Done,
// Label 2549: @128284
GIM_Try, /*On fail goto*//*Label 2550*/ 128319, // Rule ID 542 //
GIM_CheckFeatures, GIFBS_IsThumb2,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::rGPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::rGPRRegClassID,
// (bitreverse:{ *:[i32] } rGPR:{ *:[i32] }:$Rm) => (t2RBIT:{ *:[i32] } rGPR:{ *:[i32] }:$Rm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::t2RBIT,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Rd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Rm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 542,
GIR_Done,
// Label 2550: @128319
GIM_Reject,
// Label 2548: @128320
GIM_Reject,
// Label 2544: @128321
GIM_Try, /*On fail goto*//*Label 2551*/ 128408, // Rule ID 4856 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitreverse:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1) => (MVE_VBRSR32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, (t2MOVi:{ *:[i32] } 32:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2MOVi,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/1, /*Imm*/32,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VBRSR32,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val1
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4856,
GIR_Done,
// Label 2551: @128408
GIM_Reject,
// Label 2545: @128409
GIM_Try, /*On fail goto*//*Label 2552*/ 128496, // Rule ID 4857 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitreverse:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1) => (MVE_VBRSR16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, (t2MOVi:{ *:[i32] } 16:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2MOVi,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/1, /*Imm*/16,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VBRSR16,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val1
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4857,
GIR_Done,
// Label 2552: @128496
GIM_Reject,
// Label 2546: @128497
GIM_Try, /*On fail goto*//*Label 2553*/ 128584, // Rule ID 4855 //
GIM_CheckFeatures, GIFBS_HasMVEInt,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v16s8,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (bitreverse:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1) => (MVE_VBRSR8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, (t2MOVi:{ *:[i32] } 8:{ *:[i32] }))
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/2, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/ARM::t2MOVi,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
GIR_AddImm, /*InsnID*/1, /*Imm*/8,
GIR_AddImm, /*InsnID*/1, /*Imm*/14,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/1, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VBRSR8,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val1
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4855,
GIR_Done,
// Label 2553: @128584
GIM_Reject,
// Label 2547: @128585
GIM_Reject,
// Label 60: @128586
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2559*/ 128793,
/*GILLT_s16*//*Label 2554*/ 128605,
/*GILLT_s32*//*Label 2555*/ 128629,
/*GILLT_s64*//*Label 2556*/ 128653, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 2557*/ 128677, 0, 0, 0,
/*GILLT_v8s16*//*Label 2558*/ 128735,
// Label 2554: @128605
GIM_Try, /*On fail goto*//*Label 2560*/ 128628, // Rule ID 696 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fceil:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTPH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTPH,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 696,
GIR_Done,
// Label 2560: @128628
GIM_Reject,
// Label 2555: @128629
GIM_Try, /*On fail goto*//*Label 2561*/ 128652, // Rule ID 697 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fceil:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTPS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTPS,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 697,
GIR_Done,
// Label 2561: @128652
GIM_Reject,
// Label 2556: @128653
GIM_Try, /*On fail goto*//*Label 2562*/ 128676, // Rule ID 698 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fceil:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTPD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTPD,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 698,
GIR_Done,
// Label 2562: @128676
GIM_Reject,
// Label 2557: @128677
GIM_Try, /*On fail goto*//*Label 2563*/ 128734, // Rule ID 4086 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fceil:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32P:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf32P,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4086,
GIR_Done,
// Label 2563: @128734
GIM_Reject,
// Label 2558: @128735
GIM_Try, /*On fail goto*//*Label 2564*/ 128792, // Rule ID 4074 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (fceil:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16P:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf16P,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4074,
GIR_Done,
// Label 2564: @128792
GIM_Reject,
// Label 2559: @128793
GIM_Reject,
// Label 61: @128794
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 3, /*)*//*default:*//*Label 2568*/ 128923,
/*GILLT_s16*//*Label 2565*/ 128803,
/*GILLT_s32*//*Label 2566*/ 128843,
/*GILLT_s64*//*Label 2567*/ 128883,
// Label 2565: @128803
GIM_Try, /*On fail goto*//*Label 2569*/ 128842, // Rule ID 704 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fsqrt:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VSQRTH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSQRTH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 704,
GIR_Done,
// Label 2569: @128842
GIM_Reject,
// Label 2566: @128843
GIM_Try, /*On fail goto*//*Label 2570*/ 128882, // Rule ID 703 //
GIM_CheckFeatures, GIFBS_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fsqrt:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VSQRTS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSQRTS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 703,
GIR_Done,
// Label 2570: @128882
GIM_Reject,
// Label 2567: @128883
GIM_Try, /*On fail goto*//*Label 2571*/ 128922, // Rule ID 702 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasVFP2,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fsqrt:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VSQRTD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VSQRTD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 702,
GIR_Done,
// Label 2571: @128922
GIM_Reject,
// Label 2568: @128923
GIM_Reject,
// Label 62: @128924
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2577*/ 129131,
/*GILLT_s16*//*Label 2572*/ 128943,
/*GILLT_s32*//*Label 2573*/ 128967,
/*GILLT_s64*//*Label 2574*/ 128991, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 2575*/ 129015, 0, 0, 0,
/*GILLT_v8s16*//*Label 2576*/ 129073,
// Label 2572: @128943
GIM_Try, /*On fail goto*//*Label 2578*/ 128966, // Rule ID 699 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTMH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTMH,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 699,
GIR_Done,
// Label 2578: @128966
GIM_Reject,
// Label 2573: @128967
GIM_Try, /*On fail goto*//*Label 2579*/ 128990, // Rule ID 700 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (ffloor:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTMS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTMS,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 700,
GIR_Done,
// Label 2579: @128990
GIM_Reject,
// Label 2574: @128991
GIM_Try, /*On fail goto*//*Label 2580*/ 129014, // Rule ID 701 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (ffloor:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTMD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/ARM::VRINTMD,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 701,
GIR_Done,
// Label 2580: @129014
GIM_Reject,
// Label 2575: @129015
GIM_Try, /*On fail goto*//*Label 2581*/ 129072, // Rule ID 4084 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (ffloor:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32M:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf32M,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4084,
GIR_Done,
// Label 2581: @129072
GIM_Reject,
// Label 2576: @129073
GIM_Try, /*On fail goto*//*Label 2582*/ 129130, // Rule ID 4072 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (ffloor:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16M:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf16M,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4072,
GIR_Done,
// Label 2582: @129130
GIM_Reject,
// Label 2577: @129131
GIM_Reject,
// Label 63: @129132
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 13, /*)*//*default:*//*Label 2588*/ 129387,
/*GILLT_s16*//*Label 2583*/ 129151,
/*GILLT_s32*//*Label 2584*/ 129191,
/*GILLT_s64*//*Label 2585*/ 129231, 0, 0, 0, 0, 0,
/*GILLT_v4s32*//*Label 2586*/ 129271, 0, 0, 0,
/*GILLT_v8s16*//*Label 2587*/ 129329,
// Label 2583: @129151
GIM_Try, /*On fail goto*//*Label 2589*/ 129190, // Rule ID 687 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (frint:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTXH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 687,
GIR_Done,
// Label 2589: @129190
GIM_Reject,
// Label 2584: @129191
GIM_Try, /*On fail goto*//*Label 2590*/ 129230, // Rule ID 688 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (frint:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTXS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 688,
GIR_Done,
// Label 2590: @129230
GIM_Reject,
// Label 2585: @129231
GIM_Try, /*On fail goto*//*Label 2591*/ 129270, // Rule ID 689 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (frint:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTXD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTXD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 689,
GIR_Done,
// Label 2591: @129270
GIM_Reject,
// Label 2586: @129271
GIM_Try, /*On fail goto*//*Label 2592*/ 129328, // Rule ID 4078 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v4s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (frint:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val) => (MVE_VRINTf32X:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf32X,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4078,
GIR_Done,
// Label 2592: @129328
GIM_Reject,
// Label 2587: @129329
GIM_Try, /*On fail goto*//*Label 2593*/ 129386, // Rule ID 4066 //
GIM_CheckFeatures, GIFBS_HasMVEFloat,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_v8s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::MQPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::MQPRRegClassID,
// (frint:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val) => (MVE_VRINTf16X:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val)
GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_v4s32,
GIR_BuildMI, /*InsnID*/1, /*Opcode*/TargetOpcode::IMPLICIT_DEF,
GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::MVE_VRINTf16X,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Qd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // val
GIR_AddImm, /*InsnID*/0, /*Imm*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 4066,
GIR_Done,
// Label 2593: @129386
GIM_Reject,
// Label 2588: @129387
GIM_Reject,
// Label 64: @129388
GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 3, /*)*//*default:*//*Label 2597*/ 129517,
/*GILLT_s16*//*Label 2594*/ 129397,
/*GILLT_s32*//*Label 2595*/ 129437,
/*GILLT_s64*//*Label 2596*/ 129477,
// Label 2594: @129397
GIM_Try, /*On fail goto*//*Label 2598*/ 129436, // Rule ID 684 //
GIM_CheckFeatures, GIFBS_HasFullFP16,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s16,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::HPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::HPRRegClassID,
// (fnearbyint:{ *:[f16] } HPR:{ *:[f16] }:$Sm) => (VRINTRH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTRH,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 684,
GIR_Done,
// Label 2598: @129436
GIM_Reject,
// Label 2595: @129437
GIM_Try, /*On fail goto*//*Label 2599*/ 129476, // Rule ID 685 //
GIM_CheckFeatures, GIFBS_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::SPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::SPRRegClassID,
// (fnearbyint:{ *:[f32] } SPR:{ *:[f32] }:$Sm) => (VRINTRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTRS,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Sd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Sm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 685,
GIR_Done,
// Label 2599: @129476
GIM_Reject,
// Label 2596: @129477
GIM_Try, /*On fail goto*//*Label 2600*/ 129516, // Rule ID 686 //
GIM_CheckFeatures, GIFBS_HasDPVFP_HasFPARMv8,
GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/ARM::DPRRegClassID,
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/ARM::DPRRegClassID,
// (fnearbyint:{ *:[f64] } DPR:{ *:[f64] }:$Dm) => (VRINTRD:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
GIR_BuildMI, /*InsnID*/0, /*Opcode*/ARM::VRINTRD,
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // Dd
GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Dm
GIR_AddImm, /*InsnID*/0, /*Imm*/14,
GIR_AddRegister, /*InsnID*/0, ARM::NoRegister, /*AddRegisterRegFlags*/0,
GIR_EraseFromParent, /*InsnID*/0,
GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
// GIR_Coverage, 686,
GIR_Done,
// Label 2600: @129516
GIM_Reject,
// Label 2597: @129517
GIM_Reject,
// Label 65: @129518
GIM_Reject,
};
return MatchTable0;
}
#endif // ifdef GET_GLOBALISEL_IMPL
#ifdef GET_GLOBALISEL_PREDICATES_DECL
PredicateBitset AvailableModuleFeatures;
mutable PredicateBitset AvailableFunctionFeatures;
PredicateBitset getAvailableFeatures() const {
return AvailableModuleFeatures | AvailableFunctionFeatures;
}
PredicateBitset
computeAvailableModuleFeatures(const ARMSubtarget *Subtarget) const;
PredicateBitset
computeAvailableFunctionFeatures(const ARMSubtarget *Subtarget,
const MachineFunction *MF) const;
void setupGeneratedPerFunctionState(MachineFunction &MF) override;
#endif // ifdef GET_GLOBALISEL_PREDICATES_DECL
#ifdef GET_GLOBALISEL_PREDICATES_INIT
AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
AvailableFunctionFeatures()
#endif // ifdef GET_GLOBALISEL_PREDICATES_INIT