diff options
author | Andrew Pinski <apinski@marvell.com> | 2023-08-27 17:04:04 -0700 |
---|---|---|
committer | Andrew Pinski <apinski@marvell.com> | 2023-08-28 06:46:07 -0700 |
commit | cbde03abe5dbba13b992a3b610efe43aefc0e234 (patch) | |
tree | ff4ee92c9f8f43963ece1803dfc9ba65e6ab7ec7 | |
parent | 6164adf8f11e0e2a332d1af55810d3e4f3037358 (diff) | |
download | gcc-cbde03abe5dbba13b992a3b610efe43aefc0e234.zip gcc-cbde03abe5dbba13b992a3b610efe43aefc0e234.tar.gz gcc-cbde03abe5dbba13b992a3b610efe43aefc0e234.tar.bz2 |
MATCH: Remove redundant pattern for `(x | y) & ~x`
After r14-2885-gb9237226fdc938, this pattern becomes
redundant as we match it using bitwise_inverted_equal_p.
There is already a testcase (gcc.dg/nand.c) for this pattern
and it still passes after the removal.
OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.
gcc/ChangeLog:
PR tree-optimization/111146
* match.pd (`(x | y) & ~x`, `(x & y) | ~x`): Remove
redundant pattern.
-rw-r--r-- | gcc/match.pd | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/gcc/match.pd b/gcc/match.pd index fa598d5..0076392 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1556,14 +1556,6 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (bit_ior:c (bit_xor:s @0 @1) (bit_not:s (bit_ior:s @0 @1))) (bit_not (bit_and @0 @1))) -/* (x | y) & ~x -> y & ~x */ -/* (x & y) | ~x -> y | ~x */ -(for bitop (bit_and bit_ior) - rbitop (bit_ior bit_and) - (simplify - (bitop:c (rbitop:c @0 @1) (bit_not@2 @0)) - (bitop @1 @2))) - /* (x & y) ^ (x | y) -> x ^ y */ (simplify (bit_xor:c (bit_and @0 @1) (bit_ior @0 @1)) |