void foo (int *p) { int a = -1, b = -1, c = -1, d = -1, e = -1, f = -1, g = -1, h = -1; int i; #pragma omp parallel #pragma omp for lastprivate (conditional: a) for (i = 0; i < 32; i++) if (p[i]) a = i; #pragma omp simd lastprivate (conditional: b) for (i = 0; i < 32; i++) if (p[i]) b = i; #pragma omp parallel #pragma omp for simd lastprivate (conditional: c) for (i = 0; i < 32; i++) if (p[i]) c = i; #pragma omp parallel for lastprivate (conditional: d) for (i = 0; i < 32; i++) if (p[i]) d = i; #pragma omp parallel for simd lastprivate (conditional: e) for (i = 0; i < 32; i++) if (p[i]) e = i; }