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)12 f (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()22 int 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