fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B and -A CMP CST -> A CMP...
authorRichard Biener <rguenther@suse.de>
Fri, 26 Jun 2015 10:59:27 +0000 (10:59 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 26 Jun 2015 10:59:27 +0000 (10:59 +0000)
commit66e1cacf608045c09f7c1e4be9940caefeccd473
tree15f8263212e8e9f94762483e2a083110185da545
parent8afaddaace206b20d883497a8fa34712997f819f
fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B and -A CMP CST -> A CMP -CST which is redundant...

2015-06-26  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
and -A CMP CST -> A CMP -CST which is redundant with a pattern
in match.pd.
Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
(X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
(X ^ C1) op C2 -> X op (C1 ^ C2) to ...
* match.pd: ... patterns here.

* gcc.dg/tree-ssa/forwprop-25.c: Adjust.

From-SVN: r225007
gcc/ChangeLog
gcc/fold-const.c
gcc/match.pd
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/forwprop-25.c