| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | IVDescriptors.h | 34 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 D | TargetTransformInfo.h | 1819 LLVM_ABI bool preferInLoopReduction(RecurKind Kind, Type *Ty) const;
|
| H A D | TargetTransformInfoImpl.h | 1085 virtual bool preferInLoopReduction(RecurKind Kind, Type *Ty) const { in preferInLoopReduction()
|
| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | IVDescriptors.cpp | 39 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 D | TargetTransformInfo.cpp | 1400 bool TargetTransformInfo::preferInLoopReduction(RecurKind Kind, in preferInLoopReduction()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | LoopUtils.cpp | 913 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 D | LoopUtils.h | 372 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 D | RISCVTargetTransformInfo.h | 366 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 D | LoopInterchange.cpp | 827 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 D | VPlanConstruction.cpp | 646 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 D | SLPVectorizer.cpp | 2058 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 D | VPlan.h | 2232 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 D | VPlanRecipes.cpp | 747 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 D | LoopVectorize.cpp | 4353 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 D | VPlanTransforms.cpp | 1747 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 D | ExpandReductions.cpp | 61 RecurKind RK = getMinMaxReductionRecurKind(ID); in expandReductions()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ |
| H A D | ARMTargetTransformInfo.h | 231 bool preferInLoopReduction(RecurKind Kind, Type *Ty) const override;
|
| H A D | ARMTargetTransformInfo.cpp | 2700 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 D | AArch64TargetTransformInfo.cpp | 5095 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 …]
|