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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

https://gcc.gnu.org/g:06cc38c1c350b34cbd6dde23aefca32442c07a73

commit r14-2595-g06cc38c1c350b34cbd6dde23aefca32442c07a73
Author: liuhongt <hongtao....@intel.com>
Date:   Mon Jul 10 14:12:07 2023 +0800

    Add peephole to eliminate redundant comparison after cmpccxadd.

    Similar like we did for cmpxchg, but extended to all
    ix86_comparison_int_operator since cmpccxadd set EFLAGS exactly same
    as CMP.

    When operand order in compare insn is same as that in cmpccxadd,
    compare insn can be eliminated directly.

    When operand order is swapped in compare insn, only optimize cmpccxadd
    + cmpl + jcc/setcc to cmpccxadd + jcc/setcc when FLAGS_REG is dead
    after jcc/setcc.

    gcc/ChangeLog:

            PR target/110591
            * config/i386/sync.md (cmpccxadd_<mode>): Adjust the pattern
            to explicitly set FLAGS_REG like *cmp<mode>_1, also add extra
            3 define_peephole2 after the pattern.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr110591.c: New test.
            * gcc.target/i386/pr110591-2.c: New test.
  • [Bug target/110591] [i386] (May... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to