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

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Andrew Pinski
<pins...@gcc.gnu.org>:

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

commit r13-7927-gb5fa95a3569f6ee66697876a3a380fef1b333f3d
Author: Andrew Pinski <apin...@marvell.com>
Date:   Sat Sep 23 21:53:09 2023 -0700

    Fix PR 110386: backprop vs ABSU_EXPR

    The issue here is that when backprop tries to go
    and strip sign ops, it skips over ABSU_EXPR but
    ABSU_EXPR not only does an ABS, it also changes the
    type to unsigned.
    Since strip_sign_op_1 is only supposed to strip off
    sign changing operands and not ones that change types,
    removing ABSU_EXPR here is correct. We don't handle
    nop conversions so this does cause any missed optimizations either.

    Committed to the GCC 13 branch after bootstrapped and
    tested on x86_64-linux-gnu with no regressions.

            PR tree-optimization/110386

    gcc/ChangeLog:

            * gimple-ssa-backprop.cc (strip_sign_op_1): Remove ABSU_EXPR.

    gcc/testsuite/ChangeLog:

            * gcc.c-torture/compile/pr110386-1.c: New test.
            * gcc.c-torture/compile/pr110386-2.c: New test.

    (cherry picked from commit 2bbac12ea7bd8a3eef5382e1b13f6019df4ec03f)

Reply via email to