------- Additional Comments From schlie at comcast dot net 2004-12-09 15:52 ------- Subject: Re: [3.4/4.0 Regression] ~6x+ performance regression, constant trees not being computed.
Sorry, lost the fact that only a single bit needs to remain significant in the resulting trasform: (((long)x & (1 << 28)) == 0) => ((((byte)(sub-word (long)x 3) >> 4) & 1) == 0) => ((((byte)x' >> 4) & 1) == 0) :: (((byte)x' & 0x10) == 0) > From: schlie at comcast dot net <[EMAIL PROTECTED]> > i.e. > > (((long)x & (1 << 28)) == 0) => (((sub-word (long)x 3) >> 4) == 0) > => (((byte)x >> 4) == 0) > > (then possibly => (((byte)x & 0x10) == 0) which I believe avr's > back-end knows how to transform into a [bit-test x 5] ) > > Might this be possible, as it would seem generally useful as well? > > Thanks again, -paul- -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18424