[llvm] [SLP]Support copyable fmuls in fmuladd, modeled as fmuladd(a, b, -0.0) (PR #213757)
Martin Storsjö via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 4 00:38:29 PDT 2026
mstorsjo wrote:
I also hit this, when building ffmpeg and Qt.
Even though you have a reproducer already, I have a separate one, in reduced C code:
```c
double a, b, c, d, e, f;
void j() {
double g;
for (int h; h < j; h++) {
double i = h * e + 0;
f = d * h + 1 + 3 * i;
g = 2 * c + 4 * i;
}
b = f;
a = g;
}
```
```console
$ clang -target x86_64-linux-gnu -c repro.c -O2
clang: ../lib/Transforms/Vectorize/SLPVectorizer.cpp:27312: void llvm::slpvector
izer::BoUpSLP::scheduleBlock(const llvm::slpvectorizer::BoUpSLP&, BlockSchedulin
g*): Assertion `all_of(Bundles, [](const ScheduleBundle *Bundle) { return Bundle->isScheduled(); }) && "must be scheduled at this point"' failed.
```
https://github.com/llvm/llvm-project/pull/213757
More information about the llvm-commits
mailing list