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

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Roger Sayle <sa...@gcc.gnu.org>:

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

commit r11-2836-ga0b4e42af26a85da2698e573ac8e32fa0a5709d6
Author: Roger Sayle <ro...@nextmovesoftware.com>
Date:   Tue Aug 25 10:50:48 2020 +0100

    middle-end: PR tree-optimization/21137: STRIP_NOPS avoids missed
optimization.

    PR tree-optimization/21137 is now an old enhancement request pointing out
    that an optimization I added back in 2006, to optimize "((x>>31)&64) != 0"
    as "x < 0", doesn't fire in the presence of unanticipated type conversions.
    The fix is to call STRIP_NOPS at the appropriate point.

    2020-08-25  Roger Sayle  <ro...@nextmovesoftware.com>

    gcc/ChangeLog
            PR tree-optimization/21137
            * fold-const.c (fold_binary_loc) [NE_EXPR/EQ_EXPR]: Call
            STRIP_NOPS when checking whether to simplify ((x>>C1)&C2) != 0.

    gcc/testsuite/ChangeLog
            PR tree-optimization/21137
            * gcc.dg/pr21137.c: New test.

Reply via email to