1 /* PR tree-optimization/29581 */ 2 /* Origin: gcc.dg/vect/vect-85.c */ 3 /* { dg-do run } */ 4 /* { dg-options "-O2 -ftree-loop-linear" } */ 5 6 extern void abort (void); 7 8 #define N 16 9 main1(int * a)10int main1 (int *a) 11 { 12 int i, j, k; 13 int b[N]; 14 15 for (i = 0; i < N; i++) 16 { 17 for (j = 0; j < N; j++) 18 { 19 k = i + N; 20 a[j] = k; 21 } 22 b[i] = k; 23 } 24 25 26 for (j = 0; j < N; j++) 27 if (a[j] != i + N - 1) 28 abort(); 29 30 for (j = 0; j < N; j++) 31 if (b[j] != j + N) 32 abort(); 33 34 return 0; 35 } 36 main(void)37int main (void) 38 { 39 int a[N] __attribute__ ((__aligned__(16))); 40 41 main1 (a); 42 43 return 0; 44 } 45