https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95859
--- Comment #12 from Tobias Schlüter <tobi at gcc dot gnu.org> --- Because I posted 32bit code before, here is what the trunk does with -m32 func34(m34): fld DWORD PTR [esp+8] mov eax, DWORD PTR [esp+4] fstp QWORD PTR [eax] fld DWORD PTR [esp+24] fstp QWORD PTR [eax+8] fld DWORD PTR [esp+40] fstp QWORD PTR [eax+16] fld DWORD PTR [esp+12] fstp QWORD PTR [eax+24] fld DWORD PTR [esp+28] fstp QWORD PTR [eax+32] fld DWORD PTR [esp+44] fstp QWORD PTR [eax+40] fld DWORD PTR [esp+16] fstp QWORD PTR [eax+48] fld DWORD PTR [esp+32] fstp QWORD PTR [eax+56] fld DWORD PTR [esp+48] fstp QWORD PTR [eax+64] fld DWORD PTR [esp+20] fstp QWORD PTR [eax+72] fld DWORD PTR [esp+36] fstp QWORD PTR [eax+80] fld DWORD PTR [esp+52] fstp QWORD PTR [eax+88] ret 4 This is the same as the assembly from 9.3 in Comment 4.