aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-08-19 07:03:48 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-08-19 07:03:48 +0000
commitca0b7ecec78f46508f044e33accba0a59bda0623 (patch)
tree21aaf3446a5d10ab36a0c63200bee2896ed76726
parent1a5da5b66a5d2d2fe87fdeddf475ec2c3c54c49f (diff)
downloadgcc-ca0b7ecec78f46508f044e33accba0a59bda0623.zip
gcc-ca0b7ecec78f46508f044e33accba0a59bda0623.tar.gz
gcc-ca0b7ecec78f46508f044e33accba0a59bda0623.tar.bz2
match.pd (x | 0 -> x): Add.
2016-08-19 Richard Biener <rguenther@suse.de> * match.pd (x | 0 -> x): Add. From-SVN: r239606
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/match.pd13
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 930663a..0ec1ae4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2016-08-19 Richard Biener <rguenther@suse.de>
+ * match.pd (x | 0 -> x): Add.
+
+2016-08-19 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/77286
* tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
Deal with virtual PHIs being out-of-order.
diff --git a/gcc/match.pd b/gcc/match.pd
index da87b02..123e754 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -541,13 +541,18 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* x | ~0 -> ~0 */
(simplify
- (bit_ior @0 integer_all_onesp@1)
- @1)
+ (bit_ior @0 integer_all_onesp@1)
+ @1)
+
+/* x | 0 -> x */
+(simplify
+ (bit_ior @0 integer_zerop)
+ @0)
/* x & 0 -> 0 */
(simplify
- (bit_and @0 integer_zerop@1)
- @1)
+ (bit_and @0 integer_zerop@1)
+ @1)
/* ~x | x -> -1 */
/* ~x ^ x -> -1 */