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

--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Hongyu Wang <hong...@gcc.gnu.org>:

https://gcc.gnu.org/g:19b24f4aae6c59d70cc882623b1e9b279b3872f3

commit r15-5225-g19b24f4aae6c59d70cc882623b1e9b279b3872f3
Author: Hongyu Wang <hongyu.w...@intel.com>
Date:   Tue Nov 12 13:04:46 2024 +0800

    i386: Fix cstorebf4 fp comparison operand [PR117495]

    For cstorebf4 it uses comparison_operator for BFmode compare, which is
    incorrect when directly uses ix86_expand_setcc as it does not canonicalize
    the input comparison to correct the compare code by swapping operands.
    The original code without AVX10.2 calls emit_store_flag_force, who
    actually calls to emit_store_flags_1 and recurisive calls to this expander
    again with swapped operand and flag.
    Therefore, we can avoid do the redundant recurisive call by adjusting
    the comparison_operator to ix86_fp_comparison_operator, and calls
    ix86_expand_setcc directly.

    gcc/ChangeLog:

            PR target/117495
            * config/i386/i386.md (cstorebf4): Use ix86_fp_comparison_operator
            and calls ix86_expand_setcc directly.

    gcc/testsuite/ChangeLog:

            PR target/117495
            * gcc.target/i386/pr117495.c: New test.

Reply via email to