mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			36 lines
		
	
	
		
			653 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			653 B
		
	
	
	
		
			C
		
	
	
	
| // { 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;
 | |
| }
 |