/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VPlanRecipes.cpp | 554 const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); in generatePerPart() local 556 RecurKind RK = RdxDesc.getRecurrenceKind(); in generatePerPart() 568 if (State.VF.isVector() && PhiTy != RdxDesc.getRecurrenceType()) { in generatePerPart() 569 Type *RdxVecTy = VectorType::get(RdxDesc.getRecurrenceType(), State.VF); in generatePerPart() 584 Builder.setFastMathFlags(RdxDesc.getFastMathFlags()); in generatePerPart() 601 createTargetReduction(Builder, RdxDesc, ReducedPartRdx, OrigPhi); in generatePerPart() 604 if (PhiTy != RdxDesc.getRecurrenceType()) in generatePerPart() 605 ReducedPartRdx = RdxDesc.isSigned() in generatePerPart() 612 if (StoreInst *SI = RdxDesc.IntermediateStore) { in generatePerPart() 1704 RecurKind Kind = RdxDesc.getRecurrenceKind(); in execute() [all …]
|
H A D | LoopVectorize.cpp | 1103 bool useOrderedReductions(const RecurrenceDescriptor &RdxDesc) const { in useOrderedReductions() 1104 return !Hints->allowReordering() && RdxDesc.isOrdered(); in useOrderedReductions() 1337 const RecurrenceDescriptor &RdxDesc = Reduction.second; in canVectorizeReductions() local 1338 return TTI.isLegalToVectorizeReduction(RdxDesc, VF); in canVectorizeReductions() 4763 const RecurrenceDescriptor &RdxDesc = PhiDescriptorPair.second; in getSmallestAndWidestTypes() local 4768 RdxDesc.getMinWidthCastToRecurrenceTypeInBits(), in getSmallestAndWidestTypes() 4769 RdxDesc.getRecurrenceType()->getScalarSizeInBits())); in getSmallestAndWidestTypes() 4803 const RecurrenceDescriptor &RdxDesc = in collectElementTypesForWidening() local 4805 if (PreferInLoopReductions || useOrderedReductions(RdxDesc) || in collectElementTypesForWidening() 4806 TTI.preferInLoopReduction(RdxDesc.getOpcode(), in collectElementTypesForWidening() [all …]
|
H A D | LoopVectorizationLegality.cpp | 1182 const RecurrenceDescriptor &RdxDesc = Reduction.second; in canVectorizeFPMath() local 1183 return !RdxDesc.hasExactFPMath() || RdxDesc.isOrdered(); in canVectorizeFPMath() 1189 const RecurrenceDescriptor &RdxDesc = Reduction.second; in isInvariantStoreOfReduction() local 1190 return RdxDesc.IntermediateStore == SI; in isInvariantStoreOfReduction() 1196 const RecurrenceDescriptor &RdxDesc = Reduction.second; in isInvariantAddressOfReduction() local 1197 if (!RdxDesc.IntermediateStore) in isInvariantAddressOfReduction() 1201 Value *InvariantAddress = RdxDesc.IntermediateStore->getPointerOperand(); in isInvariantAddressOfReduction()
|
H A D | VPlan.h | 1968 const RecurrenceDescriptor &RdxDesc; variable 1979 VPReductionPHIRecipe(PHINode *Phi, const RecurrenceDescriptor &RdxDesc, 1983 RdxDesc(RdxDesc), IsInLoop(IsInLoop), IsOrdered(IsOrdered) { 1991 new VPReductionPHIRecipe(cast<PHINode>(getUnderlyingInstr()), RdxDesc, in clone() 2013 return RdxDesc; in getRecurrenceDescriptor() 2175 const RecurrenceDescriptor &RdxDesc; variable 2184 : VPSingleDefRecipe(SC, Operands, I), RdxDesc(R), IsOrdered(IsOrdered) { in VPReductionRecipe() 2202 return new VPReductionRecipe(RdxDesc, getUnderlyingInstr(), getChainOp(), in clone() 2227 return RdxDesc; in getRecurrenceDescriptor()
|
H A D | VPlanTransforms.cpp | 977 const RecurrenceDescriptor &RdxDesc = PhiR->getRecurrenceDescriptor(); in clearReductionWrapFlags() local 978 RecurKind RK = RdxDesc.getRecurrenceKind(); in clearReductionWrapFlags()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
H A D | RISCVTargetTransformInfo.h | 304 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc, in isLegalToVectorizeReduction() argument 309 Type *Ty = RdxDesc.getRecurrenceType(); in isLegalToVectorizeReduction() 313 switch (RdxDesc.getRecurrenceKind()) { in isLegalToVectorizeReduction()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/ |
H A D | AArch64TargetTransformInfo.h | 386 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc,
|
H A D | AArch64TargetTransformInfo.cpp | 3784 const RecurrenceDescriptor &RdxDesc, ElementCount VF) const { in isLegalToVectorizeReduction() argument 3788 Type *Ty = RdxDesc.getRecurrenceType(); in isLegalToVectorizeReduction() 3792 switch (RdxDesc.getRecurrenceKind()) { in isLegalToVectorizeReduction()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | TargetTransformInfo.h | 1660 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc, 2162 virtual bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc, 2893 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc, in isLegalToVectorizeReduction() argument 2895 return Impl.isLegalToVectorizeReduction(RdxDesc, VF); in isLegalToVectorizeReduction()
|
H A D | TargetTransformInfoImpl.h | 906 bool isLegalToVectorizeReduction(const RecurrenceDescriptor &RdxDesc, in isLegalToVectorizeReduction() argument
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | TargetTransformInfo.cpp | 1271 const RecurrenceDescriptor &RdxDesc, ElementCount VF) const { in isLegalToVectorizeReduction() argument 1272 return TTIImpl->isLegalToVectorizeReduction(RdxDesc, VF); in isLegalToVectorizeReduction()
|