On 2/23/26 12:26 AM, Oleg Endo wrote:
Hi,

In order to move the SH backend over to LRA there is one more missing piece.

On SH we have two fp constant load insns "fldi0" and "fldi1".  However, they
are bound to single-precision fp mode.  We were hitting some cases where LRA
wants to substitute constant loads, which have been emitted differently
originally, and picks up those "fldi0" / "fldi1" insns but doesn't check
whether they are valid for the current fp mode.

Eventually LRA should be taught to check that any substitution is valid for
any mode, not just fp mode.  But for now, the quick solution is to add a
cannot_substitute_const_equiv_p target hook.

Bootsrapped on x86_64.  OK to apply?

Sorry for delay with the answer.

I don't like this solution.  As Jeff, I believe it is just a papering over the issue.  Also I think that introduction of cannot_substitute_mem_equiv_p long time ago was probably a bad solution too.

Saying that I'd like to be constructive.  So I'll work on this issue and hope to find another solution on this week.

Reply via email to