1 /* { dg-do run } */ 2 /* { dg-options "-O3 -march=native" } */ 3 4 extern void abort (void); 5 6 #define N 1024 7 8 float a[N], b[N], c[N]; 9 int k[N]; 10 11 __attribute__((noinline, noclone)) void f(void)12f (void) 13 { 14 int i; 15 for (i = 0; i < N; i++) 16 { 17 a[i] = b[k[i]]; 18 b[i] = c[i]; 19 } 20 } 21 main()22int main () 23 { 24 int i; 25 26 for (i = 0; i < N; i++) 27 { 28 k[i] = i%2; 29 b[i] = i; 30 c[i] = 179; 31 } 32 33 f (); 34 35 if (a[2] != 179 || a[3] != 179) 36 abort (); 37 38 return 0; 39 } 40