/* { dg-do compile } */ /* { dg-options "-O3 -c" } */ #define COLS 8 #define ROWS 8
int t_run_test(void); int t_run_test() { int k_1,i_1, j_1; static signed char f_1[ROWS][COLS] ; static long F_1[ROWS][COLS] ; long cosMatrixA[ROWS][COLS] ; for( k_1 = 0 ; k_1 < COLS ; k_1++ ) { for( i_1 = 0 ; i_1 < ROWS ; i_1++ ) { for( j_1 = 0 ; j_1 < COLS ; j_1++ ) F_1[i_1][j_1] += f_1[i_1][k_1] * cosMatrixA[k_1][j_1] ; } } return 0; } A redundant check for aliasing is created. Looking at the vectorizer's dump, we see: versioning for alias required: can't determine dependence between F_1[i_1_41][j_1_42] and F_1[i_1_41][j_1_42] Tested on Power6. -- Summary: redundant runtime check while vectorizing Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: razya at il dot ibm dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36228