[Bug tree-optimization/94913] Failure to optimize not+cmp into overflow check

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 6 15:35:07 GMT 2020


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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Uros Bizjak <uros@gcc.gnu.org>:

https://gcc.gnu.org/g:7c2879301d3b027a1ba427a5d5c7557decb8a7ab

commit r11-145-g7c2879301d3b027a1ba427a5d5c7557decb8a7ab
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Wed May 6 17:33:51 2020 +0200

    i386: Use ADD to implement compares with negated operand [PR94913]

    Use carry flag from addition to implement GEU/LTU compares
    with negated operand, so e.g.

            ~x < y

    compiles to:

            addq    %rsi, %rdi
            setc    %al

    instead of:

            notq    %rdi
            cmpq    %rsi, %rdi
            setb    %al

            PR target/94913
            * config/i386/predicates.md (add_comparison_operator): New
predicate.
            * config/i386/i386.md (compare->add splitter): New splitters.

    testsuite/ChangeLog:

            PR target/94913
            * gcc.target/i386/pr94913-1.c: New test.
            * gcc.target/i386/pr94913-2.c: Ditto.


More information about the Gcc-bugs mailing list