> I think it is the combination of:
>   * Combine doesn't pick tuples of three to attempt to combine, so it
> would never
>     pick mult, plus, and ashift to try together.
>   * Combine doesn't put an instruction back to try and combine again,
> so once I get "mac"
>     combine doesn't try again to find "mac_s16".
> 
> Is my understanding correct?  

No.  Combine will do both things.

> Is there anything that can be done?

What's happening is that the insn that combine makes from those three is
likely algebraically the same as that insn, but looks different.  Use a 
debugger to find out what it made when it combined the three insn.

Reply via email to