https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79430
--- Comment #75 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- To provide some more context, here is the code as compiled with the patch (correct version): call integral_over_z_part_isr.6797 .LVL1464: .loc 1 3089 0 fldt 496(%rsp) popq %rsi .cfi_def_cfa_offset 1160 popq %rdi .cfi_def_cfa_offset 1152 movq 80(%rsp), %rax movq 96(%rsp), %r11 fldt 64(%rsp) fxch %st(1) fucomi %st(1), %st fstp %st(1) fldt 112(%rsp) fldt 128(%rsp) ja .L1788 fstp %st(2) fxch %st(1) And here is the version without the patch: call integral_over_z_part_isr.6797 .LVL1465: .loc 1 3089 0 fldt 64(%rsp) fldt 496(%rsp) popq %rsi .cfi_def_cfa_offset 1160 popq %rdi .cfi_def_cfa_offset 1152 movq 80(%rsp), %rax movq 96(%rsp), %r11 fucomi %st(1), %st fstp %st(1) fldt 112(%rsp) fldt 128(%rsp) ja .L1788 fstp %st(2) fxch %st(1) You can see the difference where "fldt 64(%rsp)" loads from.