On Thu, Oct 13, 2011 at 9:11 AM, Richard Kenner <ken...@vlsi1.ultra.nyu.edu> 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.