https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116709
Oleg Endo <olegendo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2024-09-26 Ever confirmed|0 |1 --- Comment #1 from Oleg Endo <olegendo at gcc dot gnu.org> --- I've tried this issue on latest version of the SH LRA branch https://github.com/olegendo/gcc/tree/devel/sh-lra The issue still persists. Note that the above case must be compiled as C++. If compiled as C, the code contains a redundant mode switch, see PR 116849 without LRA: mova .L4,r0 fmov.s @r0+,fr2 fmov.s @r0+,fr1 rts fmov fr2,fr0 .L5: .align 2 .L4: .long 1095027917 .long 1098278502 with LRA: mova .L4,r0 fmov.s @r0+,fr2 lds.l @r0+,fpul fmov fr2,fr0 rts fsts fpul,fr1 .L5: .align 2 .L4: .long 1095027917 .long 1098278502