[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