https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95859

--- Comment #4 from Tobias Schlüter <tobi at gcc dot gnu.org> ---
This is a regression. 9.3 works, producing this assembly with -O2 -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

I've also thrown some other simple Eigen codes at the compiler, and 10.1 and
trunk consistently keep the asserts in place.

Reply via email to