[llvm] [SLP]Support copyable fmuls in fmuladd, modeled as fmuladd(a, b, -0.0) (PR #213757)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 4 04:25:06 PDT 2026


alexey-bataev 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;
> }
> ```
> 
> ```
> $ 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.
> ```

Thanks, will fix

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


More information about the llvm-commits mailing list