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
      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  
      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  }