OSDN Git Service

2006-02-26 Roger Sayle <roger@eyesopen.com>
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 26 Feb 2006 15:36:52 +0000 (15:36 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 26 Feb 2006 15:36:52 +0000 (15:36 +0000)
commit1d8ff0d259a49c3a172fb5ef215cb01dcec2605e
tree54fbe907a418470a9df428739064819f26fcfdfd
parent17e07532908dfd39ea8eb0815aaae951946505bf
2006-02-26  Roger Sayle  <roger@eyesopen.com>
    James A. Morrison  <phython@gcc.gnu.org>

PR middle-end/21137
* fold-const.c (fold_binary) <EQ_EXPR>:  Fold ((X>>C1)&C2) eq/ne 0,
when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
new constant C2<<C1, or as (X<0) or (X,false) depending upon the
signedness of the shift operation.

* gcc.dg/fold-eqandshift-1.c: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111453 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/fold-eqandshift-1.c [new file with mode: 0644]