https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98470
--- Comment #3 from jcmvbkbc at gcc dot gnu.org --- (In reply to rsand...@gcc.gnu.org from comment #2) > What code should GCC generate if it wants to move the given > MEM into an FP register? The two main options are: > > (1) reload the literal address into a temporary register. > This can be done by using "define_memory_constraint" > instead of "define_constraint" to define "U". I've tried that, it doesn't change anything for me. I've also tried doing this change to the "T" constraint and to both of them. Nothing. > (2) load into a general-purpose register and then move the > general-purpose register to an FP register. This can > be done using the TARGET_SECONDARY_RELOAD hook. There's already TARGET_SECONDARY_RELOAD hook for xtensa which seems to do exactly this. But it's not called from the reload and later passes for literal loads into FPU registers.