From: Florian Hahn Date: Sat, 26 Jun 2021 12:11:18 +0000 (+0100) Subject: [LV] Adjust trip count based on IsOrdered in widenPHIInstruction (NFC). X-Git-Tag: llvmorg-14-init~2943 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7f369819774d376f043200220f1a2d36d53487a2;p=platform%2Fupstream%2Fllvm.git [LV] Adjust trip count based on IsOrdered in widenPHIInstruction (NFC). Suggested in D104197, avoids the early exit. --- diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index f28dbaa..b53c144 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -4801,11 +4801,8 @@ void InnerLoopVectorizer::widenPHIInstruction(Instruction *PN, bool IsOrdered = State.VF.isVector() && Cost->isInLoopReduction(cast(PN)) && Cost->useOrderedReductions(*RdxDesc); - - for (unsigned Part = 0; Part < State.UF; ++Part) { - // This is phase one of vectorizing PHIs. - if (Part > 0 && IsOrdered) - return; + unsigned LastPartForNewPhi = IsOrdered ? 1 : State.UF; + for (unsigned Part = 0; Part < LastPartForNewPhi; ++Part) { Value *EntryPart = PHINode::Create( VecTy, 2, "vec.phi", &*LoopVectorBody->getFirstInsertionPt()); State.set(PhiR, EntryPart, Part);