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

extern "C" 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;
}
