https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66981

            Bug ID: 66981
           Summary: [graphite] delinearization of arrays
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: spop at gcc dot gnu.org
          Reporter: spop at gcc dot gnu.org
                CC: hiraditya at msn dot com
  Target Milestone: ---

Graphite needs to delinearize the memory accesses in this loop to do
vectorization and parallelization:

$ cat s.c
void foo(unsigned char *in, unsigned char *out, int w, int h)
{
  unsigned int i, j;
  for (i = 0; i < 3*w*h; i++)
    for (j = 0; j < 3*w*h; j++)
      out[i*w+j] = in[(i*w+j)*3] + in[(i*w+j)*3+1] + in[(i*w+j)*3+2];
}

$ gcc -O3 -floop-parallelize-all s.c

Polly vectorizes this loop with vector factor 16.

Reply via email to