aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 */