[Bug target/69909] [6 Regression] wrong code with -Os and vectors @ x86_64

zsojka at seznam dot cz gcc-bugzilla@gcc.gnu.org
Tue Feb 23 06:25:00 GMT 2016


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

--- Comment #2 from Zdenek Sojka <zsojka at seznam dot cz> ---
Actually, there is:

...
        mov     ecx, 8  # tmp115,
        mov     r11, QWORD PTR [rsp+160]        # v32u128_1D.1763,
v32u128_1D.1763
        mov     r12, QWORD PTR [rsp+168]        # v32u128_1D.1763,
v32u128_1D.1763
        lea     rdi, [rsp-80]   # tmp113,
        lea     rsi, [rsp+80]   # tmp114,
        xor     eax, 16 # _3,
        sub     r11, QWORD PTR [rsp-64] # _33,
        mov     DWORD PTR [rsp+104], eax        # v32u32_1D.1761, _3
        sbb     r12, QWORD PTR [rsp-56] # _33,
        xor     r10d, r10d      #
        rep movsd
...

"rep movsd" initialises the values at [rsp-64] and [rsp-56], but they are
loaded to registers too early.


More information about the Gcc-bugs mailing list