For some reason it was missing.

Bootstrapped / tested on x86_64-unknown-linux-gnu, applied.

Richard.

2016-08-19  Richard Biener  <rguent...@suse.de>

        * match.pd (x | 0 -> x): Add.

Index: gcc/match.pd
===================================================================
--- gcc/match.pd        (revision 239570)
+++ gcc/match.pd        (working copy)
@@ -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 */

Reply via email to