On Fri, May 08, 2015 at 03:32:58PM -0600, Jeff Law wrote: > On 05/08/2015 02:15 PM, Richard Henderson wrote: > > > >But it *does* try to match an intermediate pattern, > > > >(set (reg:CCGC 17 flags) > > (compare:CCGC (reg:CCGC 17 flags) > > (const_int 0 [0]))) > > > >which can be considered a no-op move. If I add the attached pattern, then > >the > >combination happens in two steps -- 9->12, 12->13 -- and we get what we > >hoped: > So what happens if that pattern is actually recognized as a nop-move by > set_noop_p? That would allow recog_for_combine to see it as a nop and > "recognize" it as valid.
It's not valid RTL though, so it is a bit more work than that. Segher