https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116709
Bug ID: 116709 Summary: [SH] fp values ferried through fpul Product: gcc Version: 14.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: olegendo at gcc dot gnu.org Target Milestone: --- Following example, compiled on sh-elf with -O2 -m4-single typedef _Complex float tuplef_t; static inline tuplef_t make_tuplef(float first, float second) { return (tuplef_t){ first, second }; } tuplef_t get_my_tuplef() { return make_tuplef(12.3f, 15.4f); } without LRA: mova .L4,r0 fmov.s @r0+,fr1 fmov.s @r0+,fr2 flds fr1,fpul <<<< fmov fr2,fr0 rts fsts fpul,fr1 <<<< .L4: .long 1098278502 .long 1095027917 with -mlra: get_my_tuplef(): mova .L4,r0 fmov.s @r0+,fr2 lds.l @r0+,fpul <<<<< fmov fr2,fr0 rts fsts fpul,fr1 <<<<< .L4: .long 1095027917 .long 1098278502