https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58219
--- Comment #1 from Oleg Endo <olegendo at gcc dot gnu.org> --- The same applies to FP loads/stores, as this example shows: float* test_func_00 (float* p, float* x) { float r = 0; r += *p++; r += *p++; *x = r; return p; } fmov.s @r4+,fr2 ! 7 movsf_ie/6 [length = 4] fldi0 fr1 ! 8 movsf_ie/3 [length = 2] mov r4,r0 ! 26 movsi_ie/2 [length = 2] fadd fr2,fr1 ! 9 addsf3_i [length = 2] fmov.s @r0+,fr2 ! 10 movsf_ie/6 [length = 4] fadd fr2,fr1 ! 11 addsf3_i [length = 2] fmov.s fr1,@r5 ! 12 movsf_ie/7 [length = 4] rts/n ! 35 *return_i [length = 4]