[llvm] [VPlan] Explicitly replicate VPInstructions by VF. (PR #155102)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 12 02:10:30 PDT 2025
================
@@ -530,34 +544,38 @@ void VPlanTransforms::replicateByVF(VPlan &Plan, ElementCount VF) {
SmallVector<VPRecipeBase *> ToRemove;
for (VPBasicBlock *VPBB : VPBBsToUnroll) {
for (VPRecipeBase &R : make_early_inc_range(*VPBB)) {
- auto *RepR = dyn_cast<VPReplicateRecipe>(&R);
- if (!RepR || RepR->isSingleScalar())
+ if (!isa<VPInstruction, VPReplicateRecipe>(&R) ||
+ (isa<VPReplicateRecipe>(&R) &&
+ cast<VPReplicateRecipe>(&R)->isSingleScalar()) ||
+ (isa<VPInstruction>(&R) &&
+ !cast<VPInstruction>(&R)->doesGeneratePerAllLanes()))
continue;
- VPBuilder Builder(RepR);
- if (RepR->getNumUsers() == 0) {
- // Create single-scalar version of RepR for all lanes.
+ auto *DefR = dyn_cast<VPRecipeWithIRFlags>(&R);
----------------
fhahn wrote:
done thanks
https://github.com/llvm/llvm-project/pull/155102
More information about the llvm-commits
mailing list