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

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

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

commit r14-3432-gddd64a6ec3b38e18aefb9fcba50c0d9297e5e711
Author: Andrew Pinski <apin...@marvell.com>
Date:   Tue Aug 22 18:41:56 2023 -0700

    MATCH: remove negate for 1bit types

    For 1bit types, negate is either undefined or don't change the value.
    In either cases we want to remove them.
    This patch adds a match pattern to do that.
    Also converting to a 1bit type we can remove the negate just like we
already do
    for `&1` so this patch adds that too.

    OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.

    Notes on the testcases:
    This patch is the last part to fix PR 95929; cond-bool-2.c testcase.
    bit1neg-1.c is a 1bit-field testcase where we could remove the assignment
    all the way in one case (which happened on the RTL level for some targets
but not all).
    cond-bool-2.c is the reduced testcase of PR 95929.

            PR tree-optimization/95929

    gcc/ChangeLog:

            * match.pd (convert?(-a)): New pattern
            for 1bit integer types.

    gcc/testsuite/ChangeLog:

            * gcc.dg/tree-ssa/bit1neg-1.c: New test.
            * gcc.dg/tree-ssa/cond-bool-1.c: New test.
            * gcc.dg/tree-ssa/cond-bool-2.c: New test.

Reply via email to