https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99414
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|s235, s2233 and s233 |s235, s2233, s275 and s233 |benchmarks of TSVC is |benchmarks of TSVC is |vectorized better by icc |vectorized better by icc |than gcc (loop interchange) |than gcc (loop interchange) --- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> --- s275: typedef float real_t; #define iterations 100000 #define LEN_1D 32000 #define LEN_2D 256 // array definitions real_t a[LEN_2D],d[LEN_2D],aa[LEN_2D][LEN_2D],bb[LEN_2D][LEN_2D],cc[LEN_2D][LEN_2D],tt[LEN_2D][LEN_2D]; int main(struct args_t * func_args) { // control flow // if around inner loop, interchanging needed for (int i = 0; i < LEN_2D; i++) aa[0][i]=1; for (int nl = 0; nl < 10*(iterations/LEN_2D); nl++) { for (int i = 0; i < LEN_2D; i++) { if (aa[0][i] > (real_t)0.) { for (int j = 1; j < LEN_2D; j++) { aa[j][i] = aa[j-1][i] + bb[j][i] * cc[j][i]; } } } dummy(); } return aa[0][0]; }