On 12/6/22 16:22, Richard Henderson wrote:
Wouldn't it be worth keeping XILF/XIFH here?

I don't know.  It's difficult for me to guess whether a dependency chain like

     val -> xor -> xor

(3 insns with serial dependencies) is better than

     val   --> xor
     load  -/

(3 insns, but only one serial dependency) is better.  But there may also be instruction fusion going on at the micro-architectural level, so that there's really only one xor.

If you have suggestions, I'm all ears.

Related microarchitectural question:

If a 32-bit insn and a 64-bit insn have a similar size encoding (and perhaps even if they don't), is it better to produce a 64-bit output so that the hw doesn't have a false dependency on the upper 32-bits of the register?

Just wondering whether most of the distinction between 32-bit and 64-bit opcodes ought to be discarded, simplifying code generation. The only items that seem most likely to have real execution time differences are multiply and divide.


r~

Reply via email to