1// { dg-do run } 2// { dg-options "-O2" } 3// { dg-additional-options "-msse2" { target sse2_runtime } } 4// { dg-additional-options "-mavx" { target avx_runtime } } 5 6extern "C" void abort (); 7__UINTPTR_TYPE__ arr[1027]; 8 9__attribute__((noinline, noclone)) void 10foo () 11{ 12 int i, v; 13 #pragma omp simd private (v) safelen(16) 14 for (i = 0; i < 1027; i++) 15 arr[i] = (__UINTPTR_TYPE__) &v; 16} 17 18int 19main () 20{ 21 int i, j, cnt = 0; 22 __UINTPTR_TYPE__ arr2[16]; 23 foo (); 24 for (i = 0; i < 1027; i++) 25 { 26 for (j = 0; j < cnt; j++) 27 if (arr[i] == arr2[j]) 28 break; 29 if (j != cnt) 30 continue; 31 if (cnt == 16) 32 abort (); 33 arr2[cnt++] = arr[i]; 34 } 35 return 0; 36} 37