/* { dg-do run } */
/* { dg-additional-options "-msse2" { target sse2_runtime } } */
/* { dg-additional-options "-mavx" { target avx_runtime } } */

extern void abort ();
__UINTPTR_TYPE__ arr[1027];

__attribute__((noinline, noclone)) void
foo ()
{
  int i, v;
  #pragma omp simd private (v) safelen(16)
  for (i = 0; i < 1027; i++)
    arr[i] = (__UINTPTR_TYPE__) &v;
}

int
main ()
{
  int i, j, cnt = 0;
  __UINTPTR_TYPE__ arr2[16];
  foo ();
  for (i = 0; i < 1027; i++)
    {
      for (j = 0; j < cnt; j++)
	if (arr[i] == arr2[j])
	  break;
      if (j != cnt)
	continue;
      if (cnt == 16)
	abort ();
      arr2[cnt++] = arr[i];
    }
  return 0;
}
