On Thu, Apr 13, 2006 at 01:29:13PM +0200, Paolo Bonzini wrote: > > What combine is doing is to expand compound operations such as > zero_extract, simplifying them, and try to make new compound operations. > Therefore you should first try to understand what's causing combine to > miss the simplification.
I'm inclined to agree with you. The zero_extract should have been HImode instead of SImode to begin with. That alone would probably prevent the outer subreg from being generated in the first place. It must be make_extraction() in combine.c which is getting it wrong. So I'll put a breakpoint there and see what happens. -- Rask Ingemann Lambertsen