[Bug target/89252] Vector load/store aren't used to initialize large memory

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Aug 1 16:59:04 GMT 2021


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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
          Component|middle-end                  |target
             Target|                            |x86_64-linux-gnu

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
On the trunk we get:
        movdqa  xmm0, XMMWORD PTR _ZL5array[rip]
        movdqa  xmm1, XMMWORD PTR _ZL5array[rip+16]
        movdqa  xmm2, XMMWORD PTR _ZL5array[rip+32]
        movdqa  xmm3, XMMWORD PTR _ZL5array[rip+48]
        movdqa  xmm4, XMMWORD PTR _ZL5array[rip+64]
        movdqa  xmm5, XMMWORD PTR _ZL5array[rip+80]
        movups  XMMWORD PTR [rdi], xmm0
        movdqa  xmm6, XMMWORD PTR _ZL5array[rip+96]
        movdqa  xmm7, XMMWORD PTR _ZL5array[rip+112]
        movups  XMMWORD PTR [rdi+16], xmm1
        movups  XMMWORD PTR [rdi+32], xmm2
        movups  XMMWORD PTR [rdi+48], xmm3
        movups  XMMWORD PTR [rdi+320], xmm4
        movups  XMMWORD PTR [rdi+336], xmm5
        movups  XMMWORD PTR [rdi+352], xmm6
        movups  XMMWORD PTR [rdi+368], xmm7

Even with -mavx which I had assumed would use the ymm registers.


More information about the Gcc-bugs mailing list