[AArch64][SVE] Combine predicated FMUL/FADD into FMA
Combine FADD and FMUL intrinsics into FMA when the result of the FMUL is an FADD operand with one only use and both use the same predicate.
Differential D111638
[AArch64][SVE] Combine predicated FMUL/FADD into FMA MattDevereau on Oct 12 2021, 6:25 AM. Authored by
Details [AArch64][SVE] Combine predicated FMUL/FADD into FMA Combine FADD and FMUL intrinsics into FMA when the result of the FMUL is an FADD operand with one only use and both use the same predicate.
Diff Detail
Event Timeline
Comment Actions Restructured logic path by adding instCombineSVEVectorFAdd
Comment Actions Added != operator to FastMathFlags Comment Actions Wrong argument order needs fixing, and some nits. Please also run clang-format.
Comment Actions Thanks for your review @bsmith, a couple of thoughts on your queries.
Comment Actions Added Global Fusion check before instCombineSVEVectorFMLA
Comment Actions Sorry @MattDevereau for the too late review but this is the first time I've had chance to look at the patch and I think there's an issue that needs fixing.
|
Please add a comment around your combine of the form // fold (fadd a (fmul b c)) -> (fma a b c)