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"
104 LegalizerHelper::LegalizerHelper(MachineFunction &MF,
111 LegalizerHelper::LegalizerHelper(MachineFunction &MF, const LegalizerInfo &LI,
117 LegalizerHelper::LegalizeResult
118 LegalizerHelper::legalizeInstrStep(MachineInstr &MI,
162 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,
564 LegalizerHelper::LegalizeResult
585 return LegalizerHelper::UnableToLegalize;
608 return LegalizerHelper::Legalized;
611 LegalizerHelper::LegalizeResult
619 return LegalizerHelper::UnableToLegalize;
625 static LegalizerHelper::LegalizeResult
639 LegalizerHelper::LegalizeResult
688 return LegalizerHelper::UnableToLegalize;
701 return LegalizerHelper::UnableToLegalize;
725 return LegalizerHelper::Legalized;
776 static LegalizerHelper::LegalizeResult
839 return LegalizerHelper::UnableToLegalize;
849 return LegalizerHelper::UnableToLegalize;
851 return LegalizerHelper::Legalized;
876 static LegalizerHelper::LegalizeResult
923 LegalizerHelper::LegalizeResult
924 LegalizerHelper::createGetStateLibcall(MachineIRBuilder &MIRBuilder,
949 if (Res != LegalizerHelper::Legalized)
957 return LegalizerHelper::Legalized;
963 LegalizerHelper::LegalizeResult
964 LegalizerHelper::createSetStateLibcall(MachineIRBuilder &MIRBuilder,
1000 LegalizerHelper::LegalizeResult
1001 LegalizerHelper::createResetStateLibcall(MachineIRBuilder &MIRBuilder,
1024 LegalizerHelper::LegalizeResult
1025 LegalizerHelper::libcall(MachineInstr &MI, LostDebugLocObserver &LocObserver) {
1220 LegalizerHelper::LegalizeResult LegalizerHelper::narrowScalar(MachineInstr &MI,
1761 Register LegalizerHelper::coerceToScalar(Register Val) {
1782 void LegalizerHelper::widenScalarSrc(MachineInstr &MI, LLT WideTy,
1789 void LegalizerHelper::narrowScalarSrc(MachineInstr &MI, LLT NarrowTy,
1796 void LegalizerHelper::widenScalarDst(MachineInstr &MI, LLT WideTy,
1805 void LegalizerHelper::narrowScalarDst(MachineInstr &MI, LLT NarrowTy,
1814 void LegalizerHelper::moreElementsVectorDst(MachineInstr &MI, LLT WideTy,
1824 void LegalizerHelper::moreElementsVectorSrc(MachineInstr &MI, LLT MoreTy,
1831 void LegalizerHelper::bitcastSrc(MachineInstr &MI, LLT CastTy, unsigned OpIdx) {
1836 void LegalizerHelper::bitcastDst(MachineInstr &MI, LLT CastTy, unsigned OpIdx) {
1844 LegalizerHelper::LegalizeResult
1845 LegalizerHelper::widenScalarMergeValues(MachineInstr &MI, unsigned TypeIdx,
1965 LegalizerHelper::LegalizeResult
1966 LegalizerHelper::widenScalarUnmergeValues(MachineInstr &MI, unsigned TypeIdx,
2094 LegalizerHelper::LegalizeResult
2095 LegalizerHelper::widenScalarExtract(MachineInstr &MI, unsigned TypeIdx,
2168 LegalizerHelper::LegalizeResult
2169 LegalizerHelper::widenScalarInsert(MachineInstr &MI, unsigned TypeIdx,
2180 LegalizerHelper::LegalizeResult
2181 LegalizerHelper::widenScalarAddSubOverflow(MachineInstr &MI, unsigned TypeIdx,
2263 LegalizerHelper::LegalizeResult
2264 LegalizerHelper::widenScalarAddSubShlSat(MachineInstr &MI, unsigned TypeIdx,
2307 LegalizerHelper::LegalizeResult
2308 LegalizerHelper::widenScalarMulo(MachineInstr &MI, unsigned TypeIdx,
2374 LegalizerHelper::LegalizeResult
2375 LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
3111 LegalizerHelper::LegalizeResult
3112 LegalizerHelper::lowerConstant(MachineInstr &MI) {
3122 LegalizerHelper::LegalizeResult
3123 LegalizerHelper::lowerFConstant(MachineInstr &MI) {
3133 LegalizerHelper::LegalizeResult
3134 LegalizerHelper::lowerBitcast(MachineInstr &MI) {
3225 LegalizerHelper::LegalizeResult
3226 LegalizerHelper::bitcastExtractVectorElt(MachineInstr &MI, unsigned TypeIdx,
3361 LegalizerHelper::LegalizeResult
3362 LegalizerHelper::bitcastInsertVectorElt(MachineInstr &MI, unsigned TypeIdx,
3434 LegalizerHelper::LegalizeResult
3435 LegalizerHelper::bitcastConcatVector(MachineInstr &MI, unsigned TypeIdx,
3469 LegalizerHelper::LegalizeResult LegalizerHelper::lowerLoad(GAnyLoad &LoadMI) {
3606 LegalizerHelper::LegalizeResult LegalizerHelper::lowerStore(GStore &StoreMI) {
3705 LegalizerHelper::LegalizeResult
3706 LegalizerHelper::bitcast(MachineInstr &MI, unsigned TypeIdx, LLT CastTy) {
3781 void LegalizerHelper::changeOpcode(MachineInstr &MI, unsigned NewOpcode) {
3787 LegalizerHelper::LegalizeResult
3788 LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT LowerHintTy) {
4117 Align LegalizerHelper::getStackTemporaryAlignment(LLT Ty,
4128 LegalizerHelper::createStackTemporary(TypeSize Bytes, Align Alignment,
4162 Register LegalizerHelper::getVectorElementPointer(Register VecPtr, LLT VecTy,
4278 LegalizerHelper::LegalizeResult
4279 LegalizerHelper::fewerElementsVectorMultiEltType(
4349 LegalizerHelper::LegalizeResult
4350 LegalizerHelper::fewerElementsVectorPhi(GenericMachineInstr &MI,
4402 LegalizerHelper::LegalizeResult
4403 LegalizerHelper::fewerElementsVectorUnmergeValues(MachineInstr &MI,
4451 LegalizerHelper::LegalizeResult
4452 LegalizerHelper::fewerElementsVectorMerge(MachineInstr &MI, unsigned TypeIdx,
4537 LegalizerHelper::LegalizeResult
4538 LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(MachineInstr &MI,
4611 LegalizerHelper::LegalizeResult
4612 LegalizerHelper::reduceLoadStoreWidth(GLoadStore &LdStMI, unsigned TypeIdx,
4706 LegalizerHelper::LegalizeResult
4707 LegalizerHelper::fewerElementsVector(MachineInstr &MI, unsigned TypeIdx,
4874 LegalizerHelper::LegalizeResult
4875 LegalizerHelper::fewerElementsBitcast(MachineInstr &MI, unsigned int TypeIdx,
4905 LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorShuffle(
5043 LegalizerHelper::LegalizeResult LegalizerHelper::fewerElementsVectorReductions(
5129 LegalizerHelper::LegalizeResult
5130 LegalizerHelper::fewerElementsVectorSeqReductions(MachineInstr &MI,
5159 LegalizerHelper::LegalizeResult
5160 LegalizerHelper::tryNarrowPow2Reduction(MachineInstr &MI, Register SrcReg,
5189 LegalizerHelper::LegalizeResult
5190 LegalizerHelper::narrowScalarShiftByConstant(MachineInstr &MI, const APInt &Amt,
5278 LegalizerHelper::LegalizeResult
5279 LegalizerHelper::narrowScalarShift(MachineInstr &MI, unsigned TypeIdx,
5387 LegalizerHelper::LegalizeResult
5388 LegalizerHelper::moreElementsVectorPhi(MachineInstr &MI, unsigned TypeIdx,
5406 MachineInstrBuilder LegalizerHelper::getNeutralElementForVecReduce(
5443 LegalizerHelper::LegalizeResult
5444 LegalizerHelper::moreElementsVector(MachineInstr &MI, unsigned TypeIdx,
5694 LegalizerHelper::LegalizeResult
5695 LegalizerHelper::equalizeVectorShuffleLengths(MachineInstr &MI) {
5763 return LegalizerHelper::LegalizeResult::Legalized;
5766 LegalizerHelper::LegalizeResult
5767 LegalizerHelper::moreElementsVectorShuffle(MachineInstr &MI,
5809 void LegalizerHelper::multiplyRegisters(SmallVectorImpl<Register> &DstRegs,
5872 LegalizerHelper::LegalizeResult
5873 LegalizerHelper::narrowScalarAddSub(MachineInstr &MI, unsigned TypeIdx,
5968 LegalizerHelper::LegalizeResult
5969 LegalizerHelper::narrowScalarMul(MachineInstr &MI, LLT NarrowTy) {
5998 LegalizerHelper::LegalizeResult
5999 LegalizerHelper::narrowScalarFPTOI(MachineInstr &MI, unsigned TypeIdx,
6023 LegalizerHelper::LegalizeResult
6024 LegalizerHelper::narrowScalarExtract(MachineInstr &MI, unsigned TypeIdx,
6091 LegalizerHelper::LegalizeResult
6092 LegalizerHelper::narrowScalarInsert(MachineInstr &MI, unsigned TypeIdx,
6175 LegalizerHelper::LegalizeResult
6176 LegalizerHelper::narrowScalarBasic(MachineInstr &MI, unsigned TypeIdx,
6216 LegalizerHelper::LegalizeResult
6217 LegalizerHelper::narrowScalarExt(MachineInstr &MI, unsigned TypeIdx,
6237 LegalizerHelper::LegalizeResult
6238 LegalizerHelper::narrowScalarSelect(MachineInstr &MI, unsigned TypeIdx,
6283 LegalizerHelper::LegalizeResult
6284 LegalizerHelper::narrowScalarCTLZ(MachineInstr &MI, unsigned TypeIdx,
6316 LegalizerHelper::LegalizeResult
6317 LegalizerHelper::narrowScalarCTTZ(MachineInstr &MI, unsigned TypeIdx,
6349 LegalizerHelper::LegalizeResult
6350 LegalizerHelper::narrowScalarCTPOP(MachineInstr &MI, unsigned TypeIdx,
6372 LegalizerHelper::LegalizeResult
6373 LegalizerHelper::narrowScalarFLDEXP(MachineInstr &MI, unsigned TypeIdx,
6397 LegalizerHelper::LegalizeResult
6398 LegalizerHelper::lowerBitCount(MachineInstr &MI) {
6583 LegalizerHelper::LegalizeResult
6584 LegalizerHelper::lowerFunnelShiftWithInverse(MachineInstr &MI) {
6622 LegalizerHelper::LegalizeResult
6623 LegalizerHelper::lowerFunnelShiftAsShifts(MachineInstr &MI) {
6677 LegalizerHelper::LegalizeResult
6678 LegalizerHelper::lowerFunnelShift(MachineInstr &MI) {
6695 LegalizerHelper::LegalizeResult Result = lowerFunnelShiftWithInverse(MI);
6701 LegalizerHelper::LegalizeResult LegalizerHelper::lowerEXT(MachineInstr &MI) {
6743 LegalizerHelper::LegalizeResult LegalizerHelper::lowerTRUNC(MachineInstr &MI) {
6800 LegalizerHelper::LegalizeResult
6801 LegalizerHelper::lowerRotateWithReverseRotate(MachineInstr &MI) {
6812 LegalizerHelper::LegalizeResult LegalizerHelper::lowerRotate(MachineInstr &MI) {
6881 LegalizerHelper::LegalizeResult
6882 LegalizerHelper::lowerU64ToF32BitOps(MachineInstr &MI) {
6937 LegalizerHelper::LegalizeResult LegalizerHelper::lowerUITOFP(MachineInstr &MI) {
6962 LegalizerHelper::LegalizeResult LegalizerHelper::lowerSITOFP(MachineInstr &MI) {
7005 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFPTOUI(MachineInstr &MI) {
7045 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFPTOSI(MachineInstr &MI) {
7110 LegalizerHelper::LegalizeResult
7111 LegalizerHelper::lowerFPTRUNC_F64_TO_F16(MachineInstr &MI) {
7225 LegalizerHelper::LegalizeResult
7226 LegalizerHelper::lowerFPTRUNC(MachineInstr &MI) {
7237 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFPOWI(MachineInstr &MI) {
7262 LegalizerHelper::LegalizeResult LegalizerHelper::lowerMinMax(MachineInstr &MI) {
7275 LegalizerHelper::LegalizeResult
7276 LegalizerHelper::lowerThreewayCompare(MachineInstr &MI) {
7305 LegalizerHelper::LegalizeResult
7306 LegalizerHelper::lowerFCopySign(MachineInstr &MI) {
7347 LegalizerHelper::LegalizeResult
7348 LegalizerHelper::lowerFMinNumMaxNum(MachineInstr &MI) {
7376 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFMad(MachineInstr &MI) {
7389 LegalizerHelper::LegalizeResult
7390 LegalizerHelper::lowerIntrinsicRound(MachineInstr &MI) {
7423 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFFloor(MachineInstr &MI) {
7448 LegalizerHelper::LegalizeResult
7449 LegalizerHelper::lowerMergeValues(MachineInstr &MI) {
7486 LegalizerHelper::LegalizeResult
7487 LegalizerHelper::lowerUnmergeValues(MachineInstr &MI) {
7526 LegalizerHelper::LegalizeResult
7527 LegalizerHelper::lowerExtractInsertVectorElt(MachineInstr &MI) {
7598 LegalizerHelper::LegalizeResult
7599 LegalizerHelper::lowerShuffleVector(MachineInstr &MI) {
7637 LegalizerHelper::LegalizeResult
7638 LegalizerHelper::lowerVECTOR_COMPRESS(llvm::MachineInstr &MI) {
7724 Register LegalizerHelper::getDynStackAllocTargetPtr(Register SPReg,
7747 LegalizerHelper::LegalizeResult
7748 LegalizerHelper::lowerDynStackAlloc(MachineInstr &MI) {
7770 LegalizerHelper::LegalizeResult
7771 LegalizerHelper::lowerStackSave(MachineInstr &MI) {
7781 LegalizerHelper::LegalizeResult
7782 LegalizerHelper::lowerStackRestore(MachineInstr &MI) {
7792 LegalizerHelper::LegalizeResult
7793 LegalizerHelper::lowerExtract(MachineInstr &MI) {
7847 LegalizerHelper::LegalizeResult LegalizerHelper::lowerInsert(MachineInstr &MI) {
7936 LegalizerHelper::LegalizeResult
7937 LegalizerHelper::lowerSADDO_SSUBO(MachineInstr &MI) {
7975 LegalizerHelper::LegalizeResult
7976 LegalizerHelper::lowerAddSubSatToMinMax(MachineInstr &MI) {
8050 LegalizerHelper::LegalizeResult
8051 LegalizerHelper::lowerAddSubSatToAddoSubo(MachineInstr &MI) {
8116 LegalizerHelper::LegalizeResult
8117 LegalizerHelper::lowerShlSat(MachineInstr &MI) {
8148 LegalizerHelper::LegalizeResult LegalizerHelper::lowerBswap(MachineInstr &MI) {
8192 LegalizerHelper::LegalizeResult
8193 LegalizerHelper::lowerBitreverse(MachineInstr &MI) {
8246 LegalizerHelper::LegalizeResult
8247 LegalizerHelper::lowerReadWriteRegister(MachineInstr &MI) {
8272 LegalizerHelper::LegalizeResult
8273 LegalizerHelper::lowerSMULH_UMULH(MachineInstr &MI) {
8294 LegalizerHelper::LegalizeResult
8295 LegalizerHelper::lowerISFPCLASS(MachineInstr &MI) {
8468 LegalizerHelper::LegalizeResult LegalizerHelper::lowerSelect(MachineInstr &MI) {
8526 LegalizerHelper::LegalizeResult LegalizerHelper::lowerDIVREM(MachineInstr &MI) {
8542 LegalizerHelper::LegalizeResult
8543 LegalizerHelper::lowerAbsToAddXor(MachineInstr &MI) {
8559 LegalizerHelper::LegalizeResult
8560 LegalizerHelper::lowerAbsToMaxNeg(MachineInstr &MI) {
8574 LegalizerHelper::LegalizeResult
8575 LegalizerHelper::lowerAbsToCNeg(MachineInstr &MI) {
8587 LegalizerHelper::LegalizeResult
8588 LegalizerHelper::lowerVectorReduction(MachineInstr &MI) {
8606 LegalizerHelper::LegalizeResult LegalizerHelper::lowerVAArg(MachineInstr &MI) {
8762 LegalizerHelper::LegalizeResult
8763 LegalizerHelper::lowerMemset(MachineInstr &MI, Register Dst, Register Val,
8875 LegalizerHelper::LegalizeResult
8876 LegalizerHelper::lowerMemcpyInline(MachineInstr &MI) {
8905 LegalizerHelper::LegalizeResult
8906 LegalizerHelper::lowerMemcpyInline(MachineInstr &MI, Register Dst, Register Src,
8915 LegalizerHelper::LegalizeResult
8916 LegalizerHelper::lowerMemcpy(MachineInstr &MI, Register Dst, Register Src,
9022 LegalizerHelper::LegalizeResult
9023 LegalizerHelper::lowerMemmove(MachineInstr &MI, Register Dst, Register Src,
9128 LegalizerHelper::LegalizeResult
9129 LegalizerHelper::lowerMemCpyFamily(MachineInstr &MI, unsigned MaxLen) {