[llvm] [VPlan] Implement interleaving as VPlan-to-VPlan transform. (PR #95842)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 15 06:26:06 PDT 2024
================
@@ -2858,42 +2883,56 @@ void VPWidenPointerInductionRecipe::execute(VPTransformState &State) {
auto *IVR = getParent()->getPlan()->getCanonicalIV();
PHINode *CanonicalIV = cast<PHINode>(State.get(IVR, 0, /*IsScalar*/ true));
- Type *PhiType = IndDesc.getStep()->getType();
+ unsigned CurrentPart = getUnrollPart();
// Build a pointer phi
Value *ScalarStartValue = getStartValue()->getLiveInIRValue();
Type *ScStValueType = ScalarStartValue->getType();
- PHINode *NewPointerPhi = PHINode::Create(ScStValueType, 2, "pointer.phi",
- CanonicalIV->getIterator());
BasicBlock *VectorPH = State.CFG.getPreheaderBBFor(this);
- NewPointerPhi->addIncoming(ScalarStartValue, VectorPH);
+ PHINode *NewPointerPhi = nullptr;
+ if (CurrentPart != 0) {
----------------
fhahn wrote:
Done, thanks!
https://github.com/llvm/llvm-project/pull/95842
More information about the llvm-commits
mailing list