[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