fold-const.c (fold_binary): Fold "(X^C1) eq/ne C2" into "X eq/ne (C1^C2)".
authorRoger Sayle <roger@eyesopen.com>
Tue, 2 Jan 2007 04:32:07 +0000 (04:32 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Tue, 2 Jan 2007 04:32:07 +0000 (04:32 +0000)
commitcf06e5c146b311b9a1f3109f2047a14ee458304d
treea0d5ee6f7357a7c40aaea45db067994d2da661a2
parente68ea32e9435ad3816d5acca3b45f9d3d7a9ae91
fold-const.c (fold_binary): Fold "(X^C1) eq/ne C2" into "X eq/ne (C1^C2)".

* fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
"X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
eq/ne Y".

* gcc.dg/fold-eqxor-4.c: New test case.

From-SVN: r120333
gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/fold-eqxor-4.c [new file with mode: 0644]