brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · ed320c8 Raw
147 lines · plain
1! RUN: %python %S/../test_errors.py %s %flang -fopenmp2! OpenMP Version 5.13! Check OpenMP construct validity for the following directives:4! 2.19.9 Ordered Construct5 6subroutine sub1()7  integer :: i, j, N = 108  real :: arrayA(10), arrayB(10)9  real, external :: foo, bar10 11  !$omp ordered12  arrayA(i) = foo(i)13  !$omp end ordered14 15  !$omp ordered threads16  arrayA(i) = foo(i)17  !$omp end ordered18 19  !$omp ordered simd20  arrayA(i) = foo(i)21  !$omp end ordered22 23  !$omp sections24  do i = 1, N25    !$omp ordered26    arrayA(i) = foo(i)27    !$omp end ordered28  end do29  !$omp end sections30 31  !$omp do ordered32  do i = 1, N33    arrayB(i) = bar(i)34    !$omp ordered35    arrayA(i) = foo(i)36    !$omp end ordered37  end do38  !$omp end do39 40  !$omp sections41  do i = 1, N42    !ERROR: An ORDERED directive with SIMD clause must be closely nested in a SIMD or worksharing-loop SIMD region43    !$omp ordered simd44    arrayA(i) = foo(i)45    !$omp end ordered46  end do47  !$omp end sections48 49  !$omp do ordered50  do i = 1, N51    !$omp parallel52    do j = 1, N53      !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a SIMD, worksharing-loop, or worksharing-loop SIMD region54      !$omp ordered55      arrayA(i) = foo(i)56      !$omp end ordered57    end do58    !$omp end parallel59  end do60  !$omp end do61 62  !$omp do ordered63  do i = 1, N64    !$omp target parallel65    do j = 1, N66      !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a SIMD, worksharing-loop, or worksharing-loop SIMD region67      !$omp ordered68      arrayA(i) = foo(i)69      !$omp end ordered70    end do71    !$omp end target parallel72  end do73  !$omp end do74 75  !$omp do76  do i = 1, N77    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter78    !$omp ordered79    arrayA(i) = foo(i)80    !$omp end ordered81  end do82  !$omp end do83 84  !$omp do85  do i = 1, N86    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter87    !$omp ordered threads88    arrayA(i) = foo(i)89    !$omp end ordered90  end do91  !$omp end do92 93  !$omp do ordered(1)94  do i = 1, N95    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter96    !$omp ordered97    arrayA(i) = foo(i)98    !$omp end ordered99  end do100  !$omp end do101 102  !$omp do ordered(1)103  do i = 1, N104    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter105    !$omp ordered threads106    arrayA(i) = foo(i)107    !$omp end ordered108  end do109  !$omp end do110 111  !$omp parallel do ordered(1)112  do i = 1, N113    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter114    !$omp ordered115    arrayA(i) = foo(i)116    !$omp end ordered117  end do118  !$omp end parallel do119 120  !$omp parallel do ordered(1)121  do i = 1, N122    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter123    !$omp ordered threads124    arrayA(i) = foo(i)125    !$omp end ordered126  end do127  !$omp end parallel do128 129  !$omp target parallel do ordered(1)130  do i = 1, N131    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter132    !$omp ordered133    arrayA(i) = foo(i)134    !$omp end ordered135  end do136  !$omp end target parallel do137 138  !$omp target parallel do ordered(1)139  do i = 1, N140    !ERROR: An ORDERED directive without the DEPEND clause must be closely nested in a worksharing-loop (or worksharing-loop SIMD) region with ORDERED clause without the parameter141    !$omp ordered threads142    arrayA(i) = foo(i)143    !$omp end ordered144  end do145  !$omp end target parallel do146end147