This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/47582] Combine chains of movl into movq
- From: "tony.poppleton at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 22 Jul 2017 11:51:51 +0000
- Subject: [Bug rtl-optimization/47582] Combine chains of movl into movq
- Auto-submitted: auto-generated
- References: <bug-47582-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47582
Tony Poppleton <tony.poppleton at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2017-7-22
Known to fail| |5.1.1, 6.3.1, 7.1.1
--- Comment #4 from Tony Poppleton <tony.poppleton at gmail dot com> ---
Retesting this with gcc 7.1.1 20170622 (Red Hat 7.1.1-3) shows that the mov's
are still not being combined, even though dependency #23684 is marked as fixed:
The DM1 branch produces:
.LFB0:
.cfi_startproc
movss b(%rip), %xmm0
xorl %eax, %eax
movss %xmm0, a(%rip)
movss b+4(%rip), %xmm0
movss %xmm0, a+4(%rip)
movss b+8(%rip), %xmm0
movss %xmm0, a+8(%rip)
movss b+12(%rip), %xmm0
movss %xmm0, a+12(%rip)
movss b+16(%rip), %xmm0
movss %xmm0, a+16(%rip)
ret
.cfi_endproc
Whilst the DM2 branch produces an even better result than previous GCC versions
I have tested on:
.LFB0:
.cfi_startproc
movl b+16(%rip), %eax
movdqu b(%rip), %xmm0
movl %eax, a+16(%rip)
xorl %eax, %eax
movups %xmm0, a(%rip)
ret