[llvm-bugs] [Bug 47491] New: 8-byte loop not vectorized

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Sep 11 05:09:38 PDT 2020


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

            Bug ID: 47491
           Summary: 8-byte loop not vectorized
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            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 pr(char* restrict r, char* restrict a){
    #pragma clang loop vectorize(enable)
    for (int i = 0; i < 8; i++){
        r[i] += a[i];
    }
}

Clang -O3:
pr:                                     # @pr
        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 or GCC -O3 (without any pragma):
pr:
        movq      xmm1, QWORD PTR [rdi]                         #3.9
        movq      xmm0, QWORD PTR [rsi]                         #3.17
        paddb     xmm1, xmm0                                    #3.9
        movq      QWORD PTR [rdi], xmm1                         #3.9
        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/20200911/f6af006c/attachment.html>


More information about the llvm-bugs mailing list