[llvm-bugs] [Bug 42410] New: Missing autovectorization for 8-byte vectors

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Jun 26 11:24:30 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=42410

            Bug ID: 42410
           Summary: Missing autovectorization for 8-byte vectors
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Loop Optimizer
          Assignee: unassignedbugs at nondot.org
          Reporter: david.bolvansky at gmail.com
                CC: llvm-bugs at lists.llvm.org

void foo (char *__restrict arr1, char *__restrict arr2)
{
  for (int i = 0; i < 8; i++)
    arr1[i] += arr2[i];
}

Clang -O3 -march=skylake

foo(char*, char*):                             # @foo(char*, char*)
        mov     al, byte ptr [rsi]
        add     byte ptr [rdi], al
        mov     al, byte ptr [rsi + 1]
        add     byte ptr [rdi + 1], al
        mov     al, byte ptr [rsi + 2]
        add     byte ptr [rdi + 2], al
        mov     al, byte ptr [rsi + 3]
        add     byte ptr [rdi + 3], al
        mov     al, byte ptr [rsi + 4]
        add     byte ptr [rdi + 4], al
        mov     al, byte ptr [rsi + 5]
        add     byte ptr [rdi + 5], al
        mov     al, byte ptr [rsi + 6]
        add     byte ptr [rdi + 6], al
        mov     al, byte ptr [rsi + 7]
        add     byte ptr [rdi + 7], al
        ret

ICC -O3 -march=skylake

foo(char*, char*):
        vmovq     xmm0, QWORD PTR [rdi]                         #6.5
        vmovq     xmm1, QWORD PTR [rsi]                         #6.16
        vpaddb    xmm2, xmm0, xmm1                              #6.5
        vmovq     QWORD PTR [rdi], xmm2                         #6.5
        ret

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190626/b357d81e/attachment-0001.html>


More information about the llvm-bugs mailing list