diff options
author | Florian Hahn <flo@fhahn.com> | 2025-03-27 18:34:13 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-27 18:34:13 +0000 |
commit | 8ddbc01295af21b06503f5a376c5572f4ed589c9 (patch) | |
tree | 30fa066a2c456c7e02d88bfcf5a28ed1f67b2209 /llvm/lib/Transforms/Utils/LoopUtils.cpp | |
parent | fb993cd2290c0cf71a5192f350adf12424b55890 (diff) | |
download | llvm-8ddbc01295af21b06503f5a376c5572f4ed589c9.zip llvm-8ddbc01295af21b06503f5a376c5572f4ed589c9.tar.gz llvm-8ddbc01295af21b06503f5a376c5572f4ed589c9.tar.bz2 |
[VPlan] Manage FindLastIV start value in ComputeFindLastIVResult (NFC) (#132690)
Keep the start value as operand of ComputeFindLastIVResult. A follow-up
patch will use this to make sure the start value is frozen if needed.
Depends on https://github.com/llvm/llvm-project/pull/132689
PR: https://github.com/llvm/llvm-project/pull/132690
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUtils.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp index 2e76852..f57d95e 100644 --- a/llvm/lib/Transforms/Utils/LoopUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp @@ -1233,11 +1233,11 @@ Value *llvm::createAnyOfReduction(IRBuilderBase &Builder, Value *Src, } Value *llvm::createFindLastIVReduction(IRBuilderBase &Builder, Value *Src, + Value *Start, const RecurrenceDescriptor &Desc) { assert(RecurrenceDescriptor::isFindLastIVRecurrenceKind( Desc.getRecurrenceKind()) && "Unexpected reduction kind"); - Value *StartVal = Desc.getRecurrenceStartValue(); Value *Sentinel = Desc.getSentinelValue(); Value *MaxRdx = Src->getType()->isVectorTy() ? Builder.CreateIntMaxReduce(Src, true) @@ -1246,7 +1246,7 @@ Value *llvm::createFindLastIVReduction(IRBuilderBase &Builder, Value *Src, // reduction is sentinel value. Value *Cmp = Builder.CreateCmp(CmpInst::ICMP_NE, MaxRdx, Sentinel, "rdx.select.cmp"); - return Builder.CreateSelect(Cmp, MaxRdx, StartVal, "rdx.select"); + return Builder.CreateSelect(Cmp, MaxRdx, Start, "rdx.select"); } Value *llvm::getReductionIdentity(Intrinsic::ID RdxID, Type *Ty, |