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.