[PATCH] Add x | 0 -> x pattern

Richard Biener rguenther@suse.de
Fri Aug 19 06:59:00 GMT 2016


For some reason it was missing.

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

Richard.

2016-08-19  Richard Biener  <rguenther@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 */



More information about the Gcc-patches mailing list