1! PR c/81887 2! { dg-do compile } 3! { dg-options "-fno-openmp -fopenmp-simd -fdump-tree-gimple" } 4! { dg-final { scan-tree-dump-times "#pragma omp simd" 2 "gimple" } } 5! { dg-final { scan-tree-dump-times "#pragma omp ordered simd\[ \t]*\[\n\r]" 2 "gimple" } } 6! { dg-final { scan-tree-dump-times "#pragma omp" 4 "gimple" } } 7 8subroutine f1 (x) 9 integer :: i, x(100) 10 !$omp simd 11 do i = 2, 101 12 !$omp ordered simd 13 x(i / 2) = i 14 !$omp end ordered 15 end do 16end subroutine 17 18subroutine f2 (x) 19 integer :: i, x(100) 20 !$omp parallel do simd ordered 21 do i = 2, 101 22 !$omp ordered threads simd 23 x(i / 2) = i 24 !$omp end ordered 25 end do 26end subroutine 27 28subroutine f3 (x) 29 integer :: i, x(100) 30 !$omp parallel do ordered 31 do i = 2, 101 32 !$omp ordered 33 x(i / 2) = i 34 !$omp end ordered 35 end do 36end subroutine 37 38subroutine f4 (x) 39 integer :: i, x(100) 40 !$omp parallel do ordered 41 do i = 2, 101 42 !$omp ordered threads 43 x(i / 2) = i 44 !$omp end ordered 45 end do 46end subroutine 47 48subroutine f5(x, n) 49 integer :: i, j, k, n, x(100,100,100) 50 !$omp parallel do ordered(3) 51 do i = 1, n 52 do j = 1, n 53 do k = 1, n 54 !$omp ordered depend(sink:i-8,j-2,k+2) depend(sink:i, j-1,k) depend(sink:i-4,j-3,k+6) depend(sink:i-6,j-4,k-6) 55 x(i, j, k) = i + j + k 56 !$omp ordered depend(source) 57 end do 58 end do 59 end do 60 !$omp end parallel do 61end subroutine 62