1234567891011121314151617181920212223242526272829303132333435 |
- // { 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;
- }
|