This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/47582] Combine chains of movl into movq


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]