diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUtils.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp index 185af86..41f43a2 100644 --- a/llvm/lib/Transforms/Utils/LoopUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp @@ -1333,24 +1333,21 @@ Value *llvm::createSimpleReduction(IRBuilderBase &Builder, Value *Src, } Value *llvm::createSimpleReduction(VectorBuilder &VBuilder, Value *Src, - const RecurrenceDescriptor &Desc) { - RecurKind Kind = Desc.getRecurrenceKind(); + RecurKind Kind, FastMathFlags FMFs) { assert(!RecurrenceDescriptor::isAnyOfRecurrenceKind(Kind) && !RecurrenceDescriptor::isFindLastIVRecurrenceKind(Kind) && "AnyOf or FindLastIV reductions are not supported."); Intrinsic::ID Id = getReductionIntrinsicID(Kind); auto *SrcTy = cast<VectorType>(Src->getType()); Type *SrcEltTy = SrcTy->getElementType(); - Value *Iden = getRecurrenceIdentity(Kind, SrcEltTy, Desc.getFastMathFlags()); + Value *Iden = getRecurrenceIdentity(Kind, SrcEltTy, FMFs); Value *Ops[] = {Iden, Src}; return VBuilder.createSimpleReduction(Id, SrcTy, Ops); } -Value *llvm::createOrderedReduction(IRBuilderBase &B, - const RecurrenceDescriptor &Desc, +Value *llvm::createOrderedReduction(IRBuilderBase &B, RecurKind Kind, Value *Src, Value *Start) { - assert((Desc.getRecurrenceKind() == RecurKind::FAdd || - Desc.getRecurrenceKind() == RecurKind::FMulAdd) && + assert((Kind == RecurKind::FAdd || Kind == RecurKind::FMulAdd) && "Unexpected reduction kind"); assert(Src->getType()->isVectorTy() && "Expected a vector type"); assert(!Start->getType()->isVectorTy() && "Expected a scalar type"); @@ -1358,11 +1355,9 @@ Value *llvm::createOrderedReduction(IRBuilderBase &B, return B.CreateFAddReduce(Start, Src); } -Value *llvm::createOrderedReduction(VectorBuilder &VBuilder, - const RecurrenceDescriptor &Desc, +Value *llvm::createOrderedReduction(VectorBuilder &VBuilder, RecurKind Kind, Value *Src, Value *Start) { - assert((Desc.getRecurrenceKind() == RecurKind::FAdd || - Desc.getRecurrenceKind() == RecurKind::FMulAdd) && + assert((Kind == RecurKind::FAdd || Kind == RecurKind::FMulAdd) && "Unexpected reduction kind"); assert(Src->getType()->isVectorTy() && "Expected a vector type"); assert(!Start->getType()->isVectorTy() && "Expected a scalar type"); |