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: unassignedb...@nondot.org
          Reporter: david.bolvan...@gmail.com
                CC: llvm-bugs@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.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to