1  void
       2  foo (int *p)
       3  {
       4    int a = -1, b = -1, c = -1, d = -1, e = -1, f = -1, g = -1, h = -1;
       5    int i;
       6    #pragma omp parallel
       7    #pragma omp for lastprivate (conditional: a)
       8    for (i = 0; i < 32; i++)
       9      if (p[i])
      10        a = i;
      11    #pragma omp simd lastprivate (conditional: b)
      12    for (i = 0; i < 32; i++)
      13      if (p[i])
      14        b = i;
      15    #pragma omp parallel
      16    #pragma omp for simd lastprivate (conditional: c)
      17    for (i = 0; i < 32; i++)
      18      if (p[i])
      19        c = i;
      20    #pragma omp parallel for lastprivate (conditional: d)
      21    for (i = 0; i < 32; i++)
      22      if (p[i])
      23        d = i;
      24    #pragma omp parallel for simd lastprivate (conditional: e)
      25    for (i = 0; i < 32; i++)
      26      if (p[i])
      27        e = i;
      28  }