On Thu, Oct 13, 2011 at 9:11 AM, Richard Kenner
<[email protected]> wrote:
>> at the end. make_compound_operation doesn't know how to
>> restore ZERO_EXTEND.
>
> It does in general. See make_extraction, which it calls. The question is
> why it doesn't in this case. That's the bug.
>
It never calls make_extraction. There are several cases handled
for AND operation. But
(and:DI (plus:DI (subreg:DI (mult:SI (reg/v:SI 85 [ i ])
(const_int 4 [0x4])) 0)
(subreg:DI (reg:SI 106) 0))
(const_int 4294967292 [0xfffffffc]))
isn't one of them.
--
H.J.