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