[llvm] [VPlan] Introduce ComputeReductionResult VPInstruction opcode. (PR #70253)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 26 05:59:57 PDT 2023


================
@@ -9054,7 +8897,25 @@ void LoopVectorizationPlanner::adjustRecipesForReductions(
   SmallVector<VPReductionPHIRecipe *> InLoopReductionPhis;
   for (VPRecipeBase &R : Header->phis()) {
     auto *PhiR = dyn_cast<VPReductionPHIRecipe>(&R);
-    if (!PhiR || !PhiR->isInLoop() || (MinVF.isScalar() && !PhiR->isOrdered()))
+    if (!PhiR)
+      continue;
+
+    // TODO: At the moment ComputeReductionResult also creates the bc.merge.rdx
+    // phi nodes, hence it needs to be created unconditionally here, until the
+    // reduction resume value handling is also modeled in VPlan.
+    VPInstruction *FinalReductionResult =
----------------
alexey-bataev wrote:

```suggestion
    auto *FinalReductionResult =
```


https://github.com/llvm/llvm-project/pull/70253


More information about the llvm-commits mailing list