[llvm] [VPlan] Directly unroll VectorPointerRecipe (PR #168886)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 2 08:28:44 PST 2025
================
@@ -297,6 +297,22 @@ void UnrollState::unrollRecipeByUF(VPRecipeBase &R) {
Copy->setOperand(1, getValueForPart(Op, Part));
continue;
}
+ if (auto *VPR = dyn_cast<VPVectorPointerRecipe>(&R)) {
+ VPBuilder Builder(VPR);
+ auto *Prev = cast<VPVectorPointerRecipe>(getValueForPart(VPR, Part - 1))
+ ->getOperand(1);
+ VPValue *Increment = &Plan.getVF();
+ Type *IncTy = TypeInfo.inferScalarType(Increment);
+ Increment = Builder.createScalarZExtOrTrunc(
+ Increment, TypeInfo.inferScalarType(Prev), IncTy,
+ DebugLoc::getCompilerGenerated());
+ VPIRFlags Flags = VPIRFlags::WrapFlagsTy(true, true);
+ VPInstruction *Add = Builder.createNaryOp(
+ Instruction::Add, {Prev, Increment}, Flags, VPR->getDebugLoc());
----------------
artagnon wrote:
Oops, misread your initial suggestion: thanks for following up!
https://github.com/llvm/llvm-project/pull/168886
More information about the llvm-commits
mailing list