| /* { dg-do run } */ | |
| /* { dg-additional-options "-msse2" { target sse2_runtime } } */ | |
| /* { dg-additional-options "-mavx" { target avx_runtime } } */ | |
| extern void abort (void); | |
| int a[1024], b = -1; | |
| int | |
| main () | |
| { | |
| int i; | |
| #pragma omp parallel for simd ordered | |
| for (i = 0; i < 1024; i++) | |
| { | |
| a[i] = i; | |
| #pragma omp ordered threads simd | |
| { | |
| if (b + 1 != i) | |
| abort (); | |
| b = i; | |
| } | |
| a[i] += 3; | |
| } | |
| if (b != 1023) | |
| abort (); | |
| for (i = 0; i < 1024; i++) | |
| if (a[i] != i + 3) | |
| abort (); | |
| return 0; | |
| } |