Home
last modified time | relevance | path

Searched refs:RecurKind (Results 1 – 19 of 19) sorted by relevance

/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DIVDescriptors.h34 enum class RecurKind { enum
93 RecurKind K, FastMathFlags FMF, Instruction *ExactFP, in RecurrenceDescriptor()
109 RecKind(RecurKind::None), ExactFPMathInst(ExactFP) {} in IsRecurrence()
111 InstDesc(Instruction *I, RecurKind K, Instruction *ExactFP = nullptr)
121 RecurKind getRecKind() const { return RecKind; } in getRecKind()
132 RecurKind RecKind;
144 isRecurrenceInstr(Loop *L, PHINode *Phi, Instruction *I, RecurKind Kind,
161 LLVM_ABI static InstDesc isMinMaxPattern(Instruction *I, RecurKind Kind,
180 LLVM_ABI static InstDesc isFindIVPattern(RecurKind Kind, Loop *TheLoop,
189 LLVM_ABI static unsigned getOpcode(RecurKind Kind);
[all …]
H A DTargetTransformInfo.h1819 LLVM_ABI bool preferInLoopReduction(RecurKind Kind, Type *Ty) const;
H A DTargetTransformInfoImpl.h1085 virtual bool preferInLoopReduction(RecurKind Kind, Type *Ty) const { in preferInLoopReduction()
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DIVDescriptors.cpp39 bool RecurrenceDescriptor::isIntegerRecurrenceKind(RecurKind Kind) { in isIntegerRecurrenceKind()
43 case RecurKind::Add: in isIntegerRecurrenceKind()
44 case RecurKind::Mul: in isIntegerRecurrenceKind()
45 case RecurKind::Or: in isIntegerRecurrenceKind()
46 case RecurKind::And: in isIntegerRecurrenceKind()
47 case RecurKind::Xor: in isIntegerRecurrenceKind()
48 case RecurKind::SMax: in isIntegerRecurrenceKind()
49 case RecurKind::SMin: in isIntegerRecurrenceKind()
50 case RecurKind::UMax: in isIntegerRecurrenceKind()
51 case RecurKind::UMin: in isIntegerRecurrenceKind()
[all …]
H A DTargetTransformInfo.cpp1400 bool TargetTransformInfo::preferInLoopReduction(RecurKind Kind, in preferInLoopReduction()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopUtils.cpp913 constexpr Intrinsic::ID llvm::getReductionIntrinsicID(RecurKind RK) { in getReductionIntrinsicID()
917 case RecurKind::Add: in getReductionIntrinsicID()
919 case RecurKind::Mul: in getReductionIntrinsicID()
921 case RecurKind::And: in getReductionIntrinsicID()
923 case RecurKind::Or: in getReductionIntrinsicID()
925 case RecurKind::Xor: in getReductionIntrinsicID()
927 case RecurKind::FMulAdd: in getReductionIntrinsicID()
928 case RecurKind::FAdd: in getReductionIntrinsicID()
930 case RecurKind::FMul: in getReductionIntrinsicID()
932 case RecurKind::SMax: in getReductionIntrinsicID()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DLoopUtils.h372 LLVM_ABI constexpr Intrinsic::ID getReductionIntrinsicID(RecurKind RK);
383 LLVM_ABI Intrinsic::ID getMinMaxReductionIntrinsicOp(RecurKind RK);
386 LLVM_ABI RecurKind getMinMaxReductionRecurKind(Intrinsic::ID RdxID);
389 LLVM_ABI CmpInst::Predicate getMinMaxReductionPredicate(RecurKind RK);
398 LLVM_ABI Value *getRecurrenceIdentity(RecurKind K, Type *Tp, FastMathFlags FMF);
402 LLVM_ABI Value *createMinMaxOp(IRBuilderBase &Builder, RecurKind RK,
408 RecurKind MinMaxKind = RecurKind::None);
415 RecurKind MinMaxKind = RecurKind::None);
422 RecurKind RdxKind);
426 RecurKind RdxKind, Value *Mask,
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVTargetTransformInfo.h366 case RecurKind::Add: in isLegalToVectorizeReduction()
367 case RecurKind::And: in isLegalToVectorizeReduction()
368 case RecurKind::Or: in isLegalToVectorizeReduction()
369 case RecurKind::Xor: in isLegalToVectorizeReduction()
370 case RecurKind::SMin: in isLegalToVectorizeReduction()
371 case RecurKind::SMax: in isLegalToVectorizeReduction()
372 case RecurKind::UMin: in isLegalToVectorizeReduction()
373 case RecurKind::UMax: in isLegalToVectorizeReduction()
374 case RecurKind::FMin: in isLegalToVectorizeReduction()
375 case RecurKind::FMax: in isLegalToVectorizeReduction()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp827 RecurKind RK = RD.getRecurrenceKind(); in findInnerReductionPhi()
829 case RecurKind::Or: in findInnerReductionPhi()
830 case RecurKind::And: in findInnerReductionPhi()
831 case RecurKind::Xor: in findInnerReductionPhi()
832 case RecurKind::SMin: in findInnerReductionPhi()
833 case RecurKind::SMax: in findInnerReductionPhi()
834 case RecurKind::UMin: in findInnerReductionPhi()
835 case RecurKind::UMax: in findInnerReductionPhi()
836 case RecurKind::FAdd: in findInnerReductionPhi()
837 case RecurKind::FMul: in findInnerReductionPhi()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanConstruction.cpp646 RedPhiR->getRecurrenceKind() == RecurKind::FMaxNum ? Intrinsic::maxnum in handleMaxMinNumReductions()
681 if (Cur->getRecurrenceKind() != RecurKind::FMaxNum && in handleMaxMinNumReductions()
682 Cur->getRecurrenceKind() != RecurKind::FMinNum) { in handleMaxMinNumReductions()
702 RecurKind RedPhiRK = RedPhiR->getRecurrenceKind(); in handleMaxMinNumReductions()
703 assert((RedPhiRK == RecurKind::FMaxNum || RedPhiRK == RecurKind::FMinNum) && in handleMaxMinNumReductions()
H A DSLPVectorizer.cpp2058 bool isLoadCombineReductionCandidate(RecurKind RdxKind) const;
13989 bool BoUpSLP::isLoadCombineReductionCandidate(RecurKind RdxKind) const { in isLoadCombineReductionCandidate()
13990 if (RdxKind != RecurKind::Or) in isLoadCombineReductionCandidate()
20490 static RecurKind getRdxKind(Value *V);
21755 RecurKind RdxKind;
21779 static bool isVectorizable(RecurKind Kind, Instruction *I, in isVectorizable()
21781 if (Kind == RecurKind::None) in isVectorizable()
21793 if (Kind == RecurKind::FMax || Kind == RecurKind::FMin) { in isVectorizable()
21800 if (Kind == RecurKind::FMaximum || Kind == RecurKind::FMinimum) in isVectorizable()
21811 if (getRdxKind(I) == RecurKind::Or && isa<SelectInst>(I) && Index == 1) in getRdxOperand()
[all …]
H A DVPlan.h2232 const RecurKind Kind;
2246 VPReductionPHIRecipe(PHINode *Phi, RecurKind Kind, VPValue &Start,
2279 RecurKind getRecurrenceKind() const { return Kind; } in getRecurrenceKind()
2466 RecurKind RdxKind;
2472 VPReductionRecipe(const unsigned char SC, RecurKind RdxKind, in VPReductionRecipe()
2486 VPReductionRecipe(RecurKind RdxKind, FastMathFlags FMFs, Instruction *I,
2493 VPReductionRecipe(const RecurKind RdxKind, FastMathFlags FMFs,
2532 RecurKind getRecurrenceKind() const { return RdxKind; } in getRecurrenceKind()
2566 : VPReductionRecipe(VPDef::VPPartialReductionSC, RecurKind::Add,
H A DVPlanRecipes.cpp747 RecurKind::AnyOf), in generate()
757 RecurKind RK = PhiR->getRecurrenceKind(); in generate()
767 RecurKind MinMaxKind; in generate()
770 MinMaxKind = IsSigned ? RecurKind::SMax : RecurKind::UMax; in generate()
772 MinMaxKind = IsSigned ? RecurKind::SMin : RecurKind::UMin; in generate()
788 RecurKind RK = PhiR->getRecurrenceKind(); in generate()
2491 RecurKind Kind = getRecurrenceKind(); in execute()
2543 RecurKind Kind = getRecurrenceKind(); in execute()
2571 RecurKind RdxKind = getRecurrenceKind(); in computeCost()
H A DLoopVectorize.cpp4353 RecurKind RK = Legal->getRecurrenceDescriptor(&Phi).getRecurrenceKind(); in isCandidateForEpilogueVectorization()
4354 return RK == RecurKind::FMinNum || RK == RecurKind::FMaxNum; in isCandidateForEpilogueVectorization()
4815 RecurKind RK = RdxDesc.getRecurrenceKind(); in selectInterleaveCount()
5375 RecurKind RK = RdxDesc.getRecurrenceKind(); in getReductionPatternCost()
5387 if (RK == RecurKind::FMulAdd) in getReductionPatternCost()
6541 RecurKind Kind = RdxDesc.getRecurrenceKind(); in collectInLoopReductions()
7162 RecurKind Kind = EpiRedHeaderPhi->getRecurrenceKind(); in fixReductionScalarResumeWhenVectorizingEpilog()
8987 RecurKind Kind = PhiR->getRecurrenceKind(); in adjustRecipesForReductions()
9038 bool IsFMulAdd = (Kind == RecurKind::FMulAdd); in adjustRecipesForReductions()
9175 RecurKind RecurrenceKind = PhiR->getRecurrenceKind(); in adjustRecipesForReductions()
[all …]
H A DVPlanTransforms.cpp1747 RecurKind RK = PhiR->getRecurrenceKind(); in clearReductionWrapFlags()
1748 if (RK != RecurKind::Add && RK != RecurKind::Mul) in clearReductionWrapFlags()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DExpandReductions.cpp61 RecurKind RK = getMinMaxReductionRecurKind(ID); in expandReductions()
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/
H A DARMTargetTransformInfo.h231 bool preferInLoopReduction(RecurKind Kind, Type *Ty) const override;
H A DARMTargetTransformInfo.cpp2700 bool ARMTTIImpl::preferInLoopReduction(RecurKind Kind, Type *Ty) const { in preferInLoopReduction()
2706 case RecurKind::Add: in preferInLoopReduction()
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DAArch64TargetTransformInfo.cpp5095 case RecurKind::Add: in isLegalToVectorizeReduction()
5096 case RecurKind::FAdd: in isLegalToVectorizeReduction()
5097 case RecurKind::And: in isLegalToVectorizeReduction()
5098 case RecurKind::Or: in isLegalToVectorizeReduction()
5099 case RecurKind::Xor: in isLegalToVectorizeReduction()
5100 case RecurKind::SMin: in isLegalToVectorizeReduction()
5101 case RecurKind::SMax: in isLegalToVectorizeReduction()
5102 case RecurKind::UMin: in isLegalToVectorizeReduction()
5103 case RecurKind::UMax: in isLegalToVectorizeReduction()
5104 case RecurKind::FMin: in isLegalToVectorizeReduction()
[all …]