[llvm-bugs] [Bug 48044] New: Missed loop vectorization with gather

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Nov 2 04:24:50 PST 2020


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

            Bug ID: 48044
           Summary: Missed loop vectorization with gather
           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

int c1[256], c2[256], r[256];
unsigned int f[256*257];
#define SETMASK (1 << 21)
#define CLEARMASK (~(SETMASK))

void foo(void) 
{
  int i, j, base;
  for (i = 0; i <=255; i++) {
    base = r[i];
    for (j = 0; j <= 255; j++) {
      c1[j] =  f[(j << 8) + base]     & CLEARMASK;
      c2[j] = (f[(j << 8) + base + 1] & CLEARMASK) - 1;
    }
  }
}

O3 AVX2: Loop not vectorized due to cost model.

ICC vectorizes it.

https://godbolt.org/z/9E5ehz

-- 
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/20201102/40c86b7d/attachment.html>


More information about the llvm-bugs mailing list