On 1/10/25 12:11 PM, Robin Dapp wrote:
Integer values and floating-point values need to be converted
by fmv series instructions. So if mode1 is MODE_INT and mode2
is MODE_FLOAT, we should return false in riscv_modes_tieable_p,
and vice versa.

I think that's on purpose because we can read and write float values
from/to integer registers.  Maybe it's a cost problem that we spill
at some point rather than access directly?
But even if you spill, as long as loads/stores don't modify the value then I think we're OK from a correctness standpoint.



If I compile your test case I do see converting moves in the final
assembly - is there something you're concerned about in particular?
Which was my general question as well. Under precisely what circumstances is this causing a problem? The secondary question would be how does this change interact with the finx and related extensions?

Jeff

Reply via email to