Lines Matching defs:LegalizerHelper
1 //===-- llvm/CodeGen/GlobalISel/LegalizerHelper.cpp -----------------------===//
9 /// \file This file implements the LegalizerHelper class to legalize
15 #include "llvm/CodeGen/GlobalISel/LegalizerHelper.h"
105 LegalizerHelper::LegalizerHelper(MachineFunction &MF,
112 LegalizerHelper::LegalizerHelper(MachineFunction &MF, const LegalizerInfo &LI,
118 LegalizerHelper::LegalizeResult
119 LegalizerHelper::legalizeInstrStep(MachineInstr &MI,
163 void LegalizerHelper::insertParts(Register DstReg,
199 void LegalizerHelper::appendVectorElts(SmallVectorImpl<Register> &Elts,
209 void LegalizerHelper::mergeMixedSubvectors(Register DstReg,
236 void LegalizerHelper::extractGCDType(SmallVectorImpl<Register> &Parts,
250 LLT LegalizerHelper::extractGCDType(SmallVectorImpl<Register> &Parts, LLT DstTy,
258 LLT LegalizerHelper::buildLCMMergePieces(LLT DstTy, LLT NarrowTy, LLT GCDTy,
349 void LegalizerHelper::buildWidenedRemergeToDst(Register DstReg, LLT LCMTy,
572 LegalizerHelper::LegalizeResult
593 return LegalizerHelper::UnableToLegalize;
616 return LegalizerHelper::Legalized;
619 LegalizerHelper::LegalizeResult
627 return LegalizerHelper::UnableToLegalize;
633 static LegalizerHelper::LegalizeResult
647 LegalizerHelper::LegalizeResult
696 return LegalizerHelper::UnableToLegalize;
709 return LegalizerHelper::UnableToLegalize;
733 return LegalizerHelper::Legalized;
783 static LegalizerHelper::LegalizeResult
846 return LegalizerHelper::UnableToLegalize;
856 return LegalizerHelper::UnableToLegalize;
858 return LegalizerHelper::Legalized;
883 static LegalizerHelper::LegalizeResult
939 LegalizerHelper::LegalizeResult
940 LegalizerHelper::createGetStateLibcall(MachineIRBuilder &MIRBuilder,
965 if (Res != LegalizerHelper::Legalized)
973 return LegalizerHelper::Legalized;
979 LegalizerHelper::LegalizeResult
980 LegalizerHelper::createSetStateLibcall(MachineIRBuilder &MIRBuilder,
1050 LegalizerHelper::LegalizeResult
1051 LegalizerHelper::createFCMPLibcall(MachineIRBuilder &MIRBuilder,
1180 LegalizerHelper::LegalizeResult
1181 LegalizerHelper::createResetStateLibcall(MachineIRBuilder &MIRBuilder,
1204 LegalizerHelper::LegalizeResult
1205 LegalizerHelper::libcall(MachineInstr &MI, LostDebugLocObserver &LocObserver) {
1413 LegalizerHelper::LegalizeResult LegalizerHelper::narrowScalar(MachineInstr &MI,
1991 Register LegalizerHelper::coerceToScalar(Register Val) {
2012 void LegalizerHelper::widenScalarSrc(MachineInstr &MI, LLT WideTy,
2019 void LegalizerHelper::narrowScalarSrc(MachineInstr &MI, LLT NarrowTy,
2026 void LegalizerHelper::widenScalarDst(MachineInstr &MI, LLT WideTy,
2035 void LegalizerHelper::narrowScalarDst(MachineInstr &MI, LLT NarrowTy,
2044 void LegalizerHelper::moreElementsVectorDst(MachineInstr &MI, LLT WideTy,
2054 void LegalizerHelper::moreElementsVectorSrc(MachineInstr &MI, LLT MoreTy,
2061 void LegalizerHelper::bitcastSrc(MachineInstr &MI, LLT CastTy, unsigned OpIdx) {
2066 void LegalizerHelper::bitcastDst(MachineInstr &MI, LLT CastTy, unsigned OpIdx) {
2074 LegalizerHelper::LegalizeResult
2075 LegalizerHelper::widenScalarMergeValues(MachineInstr &MI, unsigned TypeIdx,
2195 LegalizerHelper::LegalizeResult
2196 LegalizerHelper::widenScalarUnmergeValues(MachineInstr &MI, unsigned TypeIdx,
2324 LegalizerHelper::LegalizeResult
2325 LegalizerHelper::widenScalarExtract(MachineInstr &MI, unsigned TypeIdx,
2398 LegalizerHelper::LegalizeResult
2399 LegalizerHelper::widenScalarInsert(MachineInstr &MI, unsigned TypeIdx,
2410 LegalizerHelper::LegalizeResult
2411 LegalizerHelper::widenScalarAddSubOverflow(MachineInstr &MI, unsigned TypeIdx,
2493 LegalizerHelper::LegalizeResult
2494 LegalizerHelper::widenScalarAddSubShlSat(MachineInstr &MI, unsigned TypeIdx,
2537 LegalizerHelper::LegalizeResult
2538 LegalizerHelper::widenScalarMulo(MachineInstr &MI, unsigned TypeIdx,
2604 LegalizerHelper::LegalizeResult
2605 LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
3444 LegalizerHelper::LegalizeResult
3445 LegalizerHelper::lowerConstant(MachineInstr &MI) {
3455 LegalizerHelper::LegalizeResult
3456 LegalizerHelper::lowerFConstant(MachineInstr &MI) {
3466 LegalizerHelper::LegalizeResult
3467 LegalizerHelper::lowerBitcast(MachineInstr &MI) {
3558 LegalizerHelper::LegalizeResult
3559 LegalizerHelper::bitcastExtractVectorElt(MachineInstr &MI, unsigned TypeIdx,
3694 LegalizerHelper::LegalizeResult
3695 LegalizerHelper::bitcastInsertVectorElt(MachineInstr &MI, unsigned TypeIdx,
3767 LegalizerHelper::LegalizeResult
3768 LegalizerHelper::bitcastConcatVector(MachineInstr &MI, unsigned TypeIdx,
3812 LegalizerHelper::LegalizeResult
3813 LegalizerHelper::bitcastShuffleVector(MachineInstr &MI, unsigned TypeIdx,
3846 LegalizerHelper::LegalizeResult
3847 LegalizerHelper::bitcastExtractSubvector(MachineInstr &MI, unsigned TypeIdx,
3909 LegalizerHelper::LegalizeResult
3910 LegalizerHelper::bitcastInsertSubvector(MachineInstr &MI, unsigned TypeIdx,
3967 LegalizerHelper::LegalizeResult LegalizerHelper::lowerLoad(GAnyLoad &LoadMI) {
4104 LegalizerHelper::LegalizeResult LegalizerHelper::lowerStore(GStore &StoreMI) {
4199 LegalizerHelper::LegalizeResult
4200 LegalizerHelper::scalarizeVectorBooleanStore(GStore &StoreMI) {
4243 LegalizerHelper::LegalizeResult
4244 LegalizerHelper::bitcast(MachineInstr &MI, unsigned TypeIdx, LLT CastTy) {
4325 void LegalizerHelper::changeOpcode(MachineInstr &MI, unsigned NewOpcode) {
4331 LegalizerHelper::LegalizeResult
4332 LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT LowerHintTy) {
4684 Align LegalizerHelper::getStackTemporaryAlignment(LLT Ty,
4695 LegalizerHelper::createStackTemporary(TypeSize Bytes, Align Alignment,
4708 MachineInstrBuilder LegalizerHelper::createStackStoreLoad(const DstOp &Res,
4743 Register LegalizerHelper::getVectorElementPointer(Register VecPtr, LLT VecTy,
4859 LegalizerHelper::LegalizeResult
4860 LegalizerHelper::fewerElementsVectorMultiEltType(
4930 LegalizerHelper::LegalizeResult
4931 LegalizerHelper::fewerElementsVectorPhi(GenericMachineInstr &MI,
4983 LegalizerHelper::LegalizeResult
4984 LegalizerHelper::fewerElementsVectorUnmergeValues(MachineInstr &MI,
5032 LegalizerHelper::LegalizeResult
5033 LegalizerHelper::fewerElementsVectorMerge(MachineInstr &MI, unsigned TypeIdx,
5118 LegalizerHelper::LegalizeResult
5119 LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(MachineInstr &MI,
5192 LegalizerHelper::LegalizeResult
5193 LegalizerHelper::reduceLoadStoreWidth(GLoadStore &LdStMI, unsigned TypeIdx,
5287 LegalizerHelper::LegalizeResult
5288 LegalizerHelper::fewerElementsVector(MachineInstr &MI, unsigned TypeIdx,
5462 LegalizerHelper::LegalizeResult
5463 LegalizerHelper::fewerElementsBitcast(MachineInstr &MI, unsigned int TypeIdx,
5493 LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle(
5631 LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorReductions(
5717 LegalizerHelper::LegalizeResult
5718 LegalizerHelper::fewerElementsVectorSeqReductions(MachineInstr &MI,
5747 LegalizerHelper::LegalizeResult
5748 LegalizerHelper::tryNarrowPow2Reduction(MachineInstr &MI, Register SrcReg,
5777 LegalizerHelper::LegalizeResult
5778 LegalizerHelper::narrowScalarShiftByConstant(MachineInstr &MI, const APInt &Amt,
5866 LegalizerHelper::LegalizeResult
5867 LegalizerHelper::narrowScalarShift(MachineInstr &MI, unsigned TypeIdx,
5975 LegalizerHelper::LegalizeResult
5976 LegalizerHelper::moreElementsVectorPhi(MachineInstr &MI, unsigned TypeIdx,
5994 MachineInstrBuilder LegalizerHelper::getNeutralElementForVecReduce(
6031 LegalizerHelper::LegalizeResult
6032 LegalizerHelper::moreElementsVector(MachineInstr &MI, unsigned TypeIdx,
6284 LegalizerHelper::LegalizeResult
6285 LegalizerHelper::equalizeVectorShuffleLengths(MachineInstr &MI) {
6352 return LegalizerHelper::LegalizeResult::Legalized;
6355 LegalizerHelper::LegalizeResult
6356 LegalizerHelper::moreElementsVectorShuffle(MachineInstr &MI,
6396 void LegalizerHelper::multiplyRegisters(SmallVectorImpl<Register> &DstRegs,
6459 LegalizerHelper::LegalizeResult
6460 LegalizerHelper::narrowScalarAddSub(MachineInstr &MI, unsigned TypeIdx,
6555 LegalizerHelper::LegalizeResult
6556 LegalizerHelper::narrowScalarMul(MachineInstr &MI, LLT NarrowTy) {
6585 LegalizerHelper::LegalizeResult
6586 LegalizerHelper::narrowScalarFPTOI(MachineInstr &MI, unsigned TypeIdx,
6610 LegalizerHelper::LegalizeResult
6611 LegalizerHelper::narrowScalarExtract(MachineInstr &MI, unsigned TypeIdx,
6678 LegalizerHelper::LegalizeResult
6679 LegalizerHelper::narrowScalarInsert(MachineInstr &MI, unsigned TypeIdx,
6761 LegalizerHelper::LegalizeResult
6762 LegalizerHelper::narrowScalarBasic(MachineInstr &MI, unsigned TypeIdx,
6802 LegalizerHelper::LegalizeResult
6803 LegalizerHelper::narrowScalarExt(MachineInstr &MI, unsigned TypeIdx,
6823 LegalizerHelper::LegalizeResult
6824 LegalizerHelper::narrowScalarSelect(MachineInstr &MI, unsigned TypeIdx,
6869 LegalizerHelper::LegalizeResult
6870 LegalizerHelper::narrowScalarCTLZ(MachineInstr &MI, unsigned TypeIdx,
6902 LegalizerHelper::LegalizeResult
6903 LegalizerHelper::narrowScalarCTTZ(MachineInstr &MI, unsigned TypeIdx,
6935 LegalizerHelper::LegalizeResult
6936 LegalizerHelper::narrowScalarCTPOP(MachineInstr &MI, unsigned TypeIdx,
6958 LegalizerHelper::LegalizeResult
6959 LegalizerHelper::narrowScalarFLDEXP(MachineInstr &MI, unsigned TypeIdx,
6983 LegalizerHelper::LegalizeResult
6984 LegalizerHelper::lowerBitCount(MachineInstr &MI) {
7169 LegalizerHelper::LegalizeResult
7170 LegalizerHelper::lowerFunnelShiftWithInverse(MachineInstr &MI) {
7208 LegalizerHelper::LegalizeResult
7209 LegalizerHelper::lowerFunnelShiftAsShifts(MachineInstr &MI) {
7263 LegalizerHelper::LegalizeResult
7264 LegalizerHelper::lowerFunnelShift(MachineInstr &MI) {
7281 LegalizerHelper::LegalizeResult Result = lowerFunnelShiftWithInverse(MI);
7287 LegalizerHelper::LegalizeResult LegalizerHelper::lowerEXT(MachineInstr &MI) {
7329 LegalizerHelper::LegalizeResult LegalizerHelper::lowerTRUNC(MachineInstr &MI) {
7386 LegalizerHelper::LegalizeResult
7387 LegalizerHelper::lowerRotateWithReverseRotate(MachineInstr &MI) {
7398 LegalizerHelper::LegalizeResult LegalizerHelper::lowerRotate(MachineInstr &MI) {
7467 LegalizerHelper::LegalizeResult
7468 LegalizerHelper::lowerU64ToF32BitOps(MachineInstr &MI) {
7525 LegalizerHelper::LegalizeResult
7526 LegalizerHelper::lowerU64ToF32WithSITOFP(MachineInstr &MI) {
7560 LegalizerHelper::LegalizeResult
7561 LegalizerHelper::lowerU64ToF64BitFloatOps(MachineInstr &MI) {
7595 LegalizerHelper::LegalizeResult LegalizerHelper::lowerUITOFP(MachineInstr &MI) {
7622 LegalizerHelper::LegalizeResult LegalizerHelper::lowerSITOFP(MachineInstr &MI) {
7665 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFPTOUI(MachineInstr &MI) {
7705 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFPTOSI(MachineInstr &MI) {
7769 LegalizerHelper::LegalizeResult
7770 LegalizerHelper::lowerFPTOINT_SAT(MachineInstr &MI) {
7870 LegalizerHelper::LegalizeResult
7871 LegalizerHelper::lowerFPTRUNC_F64_TO_F16(MachineInstr &MI) {
7985 LegalizerHelper::LegalizeResult
7986 LegalizerHelper::lowerFPTRUNC(MachineInstr &MI) {
7997 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFPOWI(MachineInstr &MI) {
8022 LegalizerHelper::LegalizeResult LegalizerHelper::lowerMinMax(MachineInstr &MI) {
8035 LegalizerHelper::LegalizeResult
8036 LegalizerHelper::lowerThreewayCompare(MachineInstr &MI) {
8082 LegalizerHelper::LegalizeResult
8083 LegalizerHelper::lowerFCopySign(MachineInstr &MI) {
8124 LegalizerHelper::LegalizeResult
8125 LegalizerHelper::lowerFMinNumMaxNum(MachineInstr &MI) {
8153 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFMad(MachineInstr &MI) {
8166 LegalizerHelper::LegalizeResult
8167 LegalizerHelper::lowerIntrinsicRound(MachineInstr &MI) {
8200 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFFloor(MachineInstr &MI) {
8225 LegalizerHelper::LegalizeResult
8226 LegalizerHelper::lowerMergeValues(MachineInstr &MI) {
8263 LegalizerHelper::LegalizeResult
8264 LegalizerHelper::lowerUnmergeValues(MachineInstr &MI) {
8303 LegalizerHelper::LegalizeResult
8304 LegalizerHelper::lowerExtractInsertVectorElt(MachineInstr &MI) {
8375 LegalizerHelper::LegalizeResult
8376 LegalizerHelper::lowerShuffleVector(MachineInstr &MI) {
8414 LegalizerHelper::LegalizeResult
8415 LegalizerHelper::lowerVECTOR_COMPRESS(llvm::MachineInstr &MI) {
8501 Register LegalizerHelper::getDynStackAllocTargetPtr(Register SPReg,
8524 LegalizerHelper::LegalizeResult
8525 LegalizerHelper::lowerDynStackAlloc(MachineInstr &MI) {
8547 LegalizerHelper::LegalizeResult
8548 LegalizerHelper::lowerStackSave(MachineInstr &MI) {
8558 LegalizerHelper::LegalizeResult
8559 LegalizerHelper::lowerStackRestore(MachineInstr &MI) {
8569 LegalizerHelper::LegalizeResult
8570 LegalizerHelper::lowerExtract(MachineInstr &MI) {
8624 LegalizerHelper::LegalizeResult LegalizerHelper::lowerInsert(MachineInstr &MI) {
8713 LegalizerHelper::LegalizeResult
8714 LegalizerHelper::lowerSADDO_SSUBO(MachineInstr &MI) {
8752 LegalizerHelper::LegalizeResult
8753 LegalizerHelper::lowerAddSubSatToMinMax(MachineInstr &MI) {
8827 LegalizerHelper::LegalizeResult
8828 LegalizerHelper::lowerAddSubSatToAddoSubo(MachineInstr &MI) {
8893 LegalizerHelper::LegalizeResult
8894 LegalizerHelper::lowerShlSat(MachineInstr &MI) {
8925 LegalizerHelper::LegalizeResult LegalizerHelper::lowerBswap(MachineInstr &MI) {
8969 LegalizerHelper::LegalizeResult
8970 LegalizerHelper::lowerBitreverse(MachineInstr &MI) {
9023 LegalizerHelper::LegalizeResult
9024 LegalizerHelper::lowerReadWriteRegister(MachineInstr &MI) {
9049 LegalizerHelper::LegalizeResult
9050 LegalizerHelper::lowerSMULH_UMULH(MachineInstr &MI) {
9071 LegalizerHelper::LegalizeResult
9072 LegalizerHelper::lowerISFPCLASS(MachineInstr &MI) {
9245 LegalizerHelper::LegalizeResult LegalizerHelper::lowerSelect(MachineInstr &MI) {
9303 LegalizerHelper::LegalizeResult LegalizerHelper::lowerDIVREM(MachineInstr &MI) {
9319 LegalizerHelper::LegalizeResult
9320 LegalizerHelper::lowerAbsToAddXor(MachineInstr &MI) {
9336 LegalizerHelper::LegalizeResult
9337 LegalizerHelper::lowerAbsToMaxNeg(MachineInstr &MI) {
9351 LegalizerHelper::LegalizeResult
9352 LegalizerHelper::lowerAbsToCNeg(MachineInstr &MI) {
9364 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFAbs(MachineInstr &MI) {
9380 LegalizerHelper::LegalizeResult
9381 LegalizerHelper::lowerVectorReduction(MachineInstr &MI) {
9399 LegalizerHelper::LegalizeResult LegalizerHelper::lowerVAArg(MachineInstr &MI) {
9555 LegalizerHelper::LegalizeResult
9556 LegalizerHelper::lowerMemset(MachineInstr &MI, Register Dst, Register Val,
9668 LegalizerHelper::LegalizeResult
9669 LegalizerHelper::lowerMemcpyInline(MachineInstr &MI) {
9698 LegalizerHelper::LegalizeResult
9699 LegalizerHelper::lowerMemcpyInline(MachineInstr &MI, Register Dst, Register Src,
9708 LegalizerHelper::LegalizeResult
9709 LegalizerHelper::lowerMemcpy(MachineInstr &MI, Register Dst, Register Src,
9815 LegalizerHelper::LegalizeResult
9816 LegalizerHelper::lowerMemmove(MachineInstr &MI, Register Dst, Register Src,
9921 LegalizerHelper::LegalizeResult
9922 LegalizerHelper::lowerMemCpyFamily(MachineInstr &MI, unsigned MaxLen) {