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.