On 02/20/15 17:56, Steve Ellcey wrote:
I have a question about *unfused* fma instructions. MIPS has processors
with both fused and unfused multiple and add instructions and for fused
madd's it is clear what to do; define 'fma' instructions in the md file
and let convert_mult_to_fma decide whether or not to use them.t i
Are you referring to independent multiply and add operations being done
by a single instruction, similar to the old PA 1.1 fmpyfadd/fmpyfsub?
The problem with these kinds of instructions is there's no data
dependency, so no reason for combine to do anything useful for us.
I hacked something together for the PA eons ago, but was never happy
with it, both in terms of identifying opportunities and in terms of its
compile-time performance.
If I were to do it again, I'd model it in the scheduler first.
Basically you want to use the various hooks we have to encourage those
insns to fire together.
Then you'd have a peep2 to actually squash them into a single insn.
Jeff