diff options
author | Andrew Pinski <apinski@marvell.com> | 2023-09-03 06:04:41 +0000 |
---|---|---|
committer | Andrew Pinski <apinski@marvell.com> | 2023-09-05 20:56:48 +0000 |
commit | b34f373635635fa331d2803d9232b3cfd4fd4fd1 (patch) | |
tree | 909e1b6bd0a54ed06d3cd988e800e1a7594990d5 /gcc/c | |
parent | b78cedc6b5bc062717a3e0efb10da8e19af1c422 (diff) | |
download | gcc-b34f373635635fa331d2803d9232b3cfd4fd4fd1.zip gcc-b34f373635635fa331d2803d9232b3cfd4fd4fd1.tar.gz gcc-b34f373635635fa331d2803d9232b3cfd4fd4fd1.tar.bz2 |
MATCH: Transform `(1 >> X) !=/== 0` into `X ==/!= 0`
We currently have a pattern for handling `(C >> X) & D == 0`
but if C is 1 and D is 1, the `& 1` might have been removed.
gcc/ChangeLog:
PR tree-optimization/105832
* match.pd (`(1 >> X) != 0`): New pattern
gcc/testsuite/ChangeLog:
PR tree-optimization/105832
* gcc.dg/tree-ssa/pr105832-1.c: New test.
* gcc.dg/tree-ssa/pr105832-2.c: New test.
* gcc.dg/tree-ssa/pr105832-3.c: New test.
Diffstat (limited to 'gcc/c')
0 files changed, 0 insertions, 0 deletions