https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97040

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jeff Law <l...@gcc.gnu.org>:

https://gcc.gnu.org/g:eefec38c992e3622a69de9667e91f0cafbff03cc

commit r12-7145-geefec38c992e3622a69de9667e91f0cafbff03cc
Author: Jeff Law <jeffreya...@gmail.com>
Date:   Wed Feb 9 14:10:53 2022 -0500

    Avoid using predefined insn name for instruction with different semantics

    This isn't technically a regression, but it only impacts the v850 target
and
    fixes a long standing code correctness issue.

    As outlined in slightly more detail in the PR, the v850 is using the
pattern
    name "fnmasf4" and "fnmssf4" to generate fnmaf.s and fnmsf.s instructions
     respectively.

    Unfortunately fnmasf4 is expected to produce (-a * b) + c and
    fnmssf4 (-a * b) - c.  Those v850 instructions actually negate the entire
    result.

    The fix is trivial.  Use a different pattern name so that the combiner can
    still generate those instructions, but prevent those instructions from
being
    used to implement GCC's notion of what fnmas and fnmss should be.

    This fixes pr97040 as well as a handful of testsuite failures for the v3e5
    multilib.

    gcc/
            PR target/97040
            * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
            (*v850_fnmssf4): Renamed from fnmssf4

Reply via email to