On Thu, 2 Mar 2006, Jeffrey A Law wrote: > Is causing 961206-1.c to regress at -O1 and -O2 on i686-pc-linux-gnu > and possibly other platforms.
Doh! This doesn't fail on x86_64-unknown-linux-gnu, where I developed that patch, but I am now seeing those failures on i686-pc-linux-gnu. > OUCH. Instead of testing bit 31, we test bit 7. > It seems to me that we need to emit the shift in the mode of > the comparison's first operand. Then convert the result of the > shift into the desired mode via a subreg or something along > those lines. > > Thoughts? Sorry for the breakage. I'll have a fix before the sun goes down, that performs the shift in the correct mode, then appropriately sign extends, zero extends or truncates if necessary. Many thanks for analyzing this failure. Sorry again. Roger --