[llvm] [LoopUnroll] Introduce parallel accumulators when unrolling FP reductions. (PR #166630)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 17 08:16:59 PST 2025


================
@@ -1256,14 +1257,19 @@ llvm::canParallelizeReductionWhenUnrolling(PHINode &Phi, Loop *L,
     return std::nullopt;
   RecurKind RK = RdxDesc.getRecurrenceKind();
   // Skip unsupported reductions.
-  // TODO: Handle additional reductions, including FP and min-max
-  // reductions.
-  if (!RecurrenceDescriptor::isIntegerRecurrenceKind(RK) ||
+  // TODO: Handle additional reductions, including min-max reductions.
+  if (!(RecurrenceDescriptor::isIntegerRecurrenceKind(RK) ||
+        RecurrenceDescriptor::isFloatingPointRecurrenceKind(RK)) ||
----------------
fhahn wrote:

```suggestion
  if (
```

I think the condition is always true, given how `isFloatingPointRecurrenceKind` is implemented, as long as RK != None, which `RecurrenceDescriptor::isReductionPHI` should already ensure

```
bool RecurrenceDescriptor::isFloatingPointRecurrenceKind(RecurKind Kind) {                                <<<
  return (Kind != RecurKind::None) && !isIntegerRecurrenceKind(Kind);
}
```

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


More information about the llvm-commits mailing list