fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x)...
authorRichard Biener <rguenther@suse.de>
Tue, 30 Jun 2015 11:58:48 +0000 (11:58 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 30 Jun 2015 11:58:48 +0000 (11:58 +0000)
commitb14a9c57cff644851084c4f602437c7fa353c5d0
treef7cd6a66425a4813b96dd9a091c09540c5b92b2e
parentebc30bf9fd86dc00dcb902780079cf895f4b16b5
fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x)...

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

* fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
* match.pd: ... here.
Add a few cases of A - B -> A + (-B) when B "easily" negates.
Move (x & y) | x -> x and friends before
(x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).

From-SVN: r225178
gcc/ChangeLog
gcc/fold-const.c
gcc/match.pd