This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/69909] [6 Regression] wrong code with -Os and vectors @ x86_64
- From: "zsojka at seznam dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 23 Feb 2016 06:24:56 +0000
- Subject: [Bug target/69909] [6 Regression] wrong code with -Os and vectors @ x86_64
- Auto-submitted: auto-generated
- References: <bug-69909-4 at http dot gcc dot gnu dot org/bugzilla/>
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.