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

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

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

commit r11-6748-ge2559c3945a09521ffe4f59669bc4d902ae77adb
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Sat Jan 16 09:21:52 2021 +0100

    match.pd: Optimize ((cst << x) & 1) [PR96669]

    While we had a ((1 << x) & 1) != 0 to x == 0 optimization already,
    this patch adds ((cst << x) & 1) optimization too, this time the
    second constant must be 1 though, not some power of two, but the first
    one can be any constant.  If it is even, the result is false, if it is
    odd, the result is x == 0.

    2021-01-16  Jakub Jelinek  <ja...@redhat.com>

            PR tree-optimization/96669
            * match.pd ((CST << x) & 1 -> x == 0): New simplification.

            * gcc.dg/tree-ssa/pr96669-1.c: Adjust regexp.
            * gcc.dg/tree-ssa/pr96669-2.c: New test.

Reply via email to