------- Comment #2 from dje at transmeta dot com 2006-10-25 02:41 ------- Thinking about it some more, disregard this (I think):
- nonzero_bits returns bits that may be one, not bits that are one, so it's not clear this optimization is valid regardless of anything else I _think_ this is the culprit, though it's not worded very well: - op1 is shifted outside the mode of the operation (0x3c << 31) (HOST_WIDE_INT is 64 bits) and this value is the value AND'd with the result of nonzero_bits. I think that's what you want, but "We do this by seeing if OP1 can be safely shifted left C bits" doesn't take into account the mode of the operation. Just guessing though. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29589