When MUL is the first operand to SUB, we can't use MLS because the accumulator
should be negated. Emit a NEG of the accumulator and an MLA instead, similar to
what we do for FMUL / FSUB fusing.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
I have no expertise here, but this fixes PR44222 (many AArch64 internal crashes caused by D70673), so I'm going to go ahead and approve this to get the fix in tree.
Comment Actions
Great, thanks for confirming.
As it turns out, the reason why we didn't test this pattern was because we weren't matching it (before D70673): we'd just see a mul and sub.