Files
clang-p2996/llvm/lib/Target/Mips/MipsISelLowering.cpp
Simon Dardis a35add4c54 [MIPS] Correct the implementation of the msub optimization
The MIPS backend attempts to combine integer multiply and addition or
subtraction into a madd or msub operation. This optimization is
heavily restricted due to its utility in many cases.

PR/51114 highlighted that the optimization was performed on an
associative basis which is correct in the `add` case but not in
the `sub` case.

Resolve this bug by performing an early exit in the case where the
multiply is the LHS operand of the subtraction.

This resolves PR/51114.

Thanks to digitalseraphim for reporting the issue!

Differential Revision: https://reviews.llvm.org/D124742
2022-05-12 22:33:18 +01:00

193 KiB