Transcribe error from forwprop, catched by pr54767.f90 in the fortran torture.
Committed. 2014-06-05 Richard Biener <rguent...@suse.de> * match.pd: Fix bogus (~x & y) | x -> x & y transform which should have simplified to x | y. Index: gcc/match.pd =================================================================== --- gcc/match.pd (revision 211258) +++ gcc/match.pd (working copy) @@ -356,11 +356,11 @@ to (minus @1 @0) if (INTEGRAL_TYPE_P (TREE_TYPE (@0))) (bit_and @0 @1)) -/* (~x & y) | x -> x & y */ +/* (~x & y) | x -> x | y */ (match_and_simplify (bit_ior (bit_and (bit_not @0) @1) @0) if (INTEGRAL_TYPE_P (TREE_TYPE (@0))) - (bit_and @0 @1)) + (bit_ior @0 @1)) /* ~~x -> x */ (match_and_simplify