1! { dg-additional-options "-fdump-tree-original" } 2subroutine foo (p) 3 logical :: p(:) 4 integer i 5 integer a, b, c, d, e, f, g, h 6 a = -1; b = -1; c = -1; d = -1; e = -1; f = -1; g = -1; h = -1 7 !$omp parallel 8 !$omp do lastprivate (conditional: a) 9 do i = 1, 32 10 if (p(i)) & 11 a = i 12 end do 13 !$omp end parallel 14 !$omp simd lastprivate (conditional: b) 15 do i = 1, 32 16 if (p(i)) & 17 b = i 18 end do 19 !$omp parallel 20 !$omp do simd lastprivate (conditional: c) 21 do i = 1, 32 22 if (p(i)) & 23 c = i 24 end do 25 !$omp end parallel 26 !$omp parallel do lastprivate (conditional: d) 27 do i = 1, 32 28 if (p(i)) & 29 d = i 30 end do 31 !$omp end parallel do 32 !$omp parallel do simd lastprivate (conditional: e) 33 do i = 1, 32 34 if (p(i)) & 35 e = i 36 end do 37 !$omp end parallel do simd 38end subroutine 39 40! { dg-final { scan-tree-dump-times "#pragma omp for lastprivate\\(conditional:a\\)" 1 "original" } } 41! { dg-final { scan-tree-dump-times "#pragma omp simd linear\\(i:1\\) lastprivate\\(conditional:b\\)" 1 "original" } } 42! { dg-final { scan-tree-dump-times "#pragma omp for lastprivate\\(conditional:c\\)" 1 "original" } } 43! { dg-final { scan-tree-dump-times "#pragma omp simd linear\\(i:1\\) lastprivate\\(conditional:c\\)" 1 "original" } } 44! { dg-final { scan-tree-dump-times "#pragma omp parallel lastprivate\\(conditional:d\\)" 1 "original" } } 45! { dg-final { scan-tree-dump-times "#pragma omp parallel lastprivate\\(conditional:e\\)" 1 "original" } } 46! { dg-final { scan-tree-dump-times "#pragma omp simd linear\\(i:1\\) lastprivate\\(conditional:e\\)" 1 "original" } } 47