| ! Testing the Semantics of tile | |
| !RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=61 | |
| subroutine f00 | |
| integer :: i, j | |
| !ERROR: This construct requires a perfect nest of depth 2, but the associated nest is a perfect nest of depth 1 | |
| !BECAUSE: SIZES clause was specified with 2 arguments | |
| !$omp tile sizes(2, 2) | |
| do i = 1, 10 | |
| !BECAUSE: This construct is not a DO-loop or a loop-nest-generating construct | |
| !$omp do | |
| do j = 1, 10 | |
| end do | |
| end do | |
| end | |
| subroutine f01 | |
| integer :: i, j | |
| !ERROR: This construct requires a perfect nest of depth 2, but the associated nest is a perfect nest of depth 1 | |
| !BECAUSE: SIZES clause was specified with 2 arguments | |
| !$omp tile sizes(2, 2) | |
| do i = 1, 10 | |
| !BECAUSE: Fully unrolled loop does not result in a loop nest | |
| !$omp unroll full | |
| do j = 1, 10 | |
| end do | |
| end do | |
| end | |
| subroutine f02 | |
| integer :: i, j | |
| !ERROR: This construct requires a perfect nest of depth 2, but the associated nest is a perfect nest of depth 1 | |
| !BECAUSE: SIZES clause was specified with 2 arguments | |
| !$omp tile sizes(2, 2) | |
| !BECAUSE: Partially unrolled loop cannot form a nest of depth > 1 | |
| !$omp unroll partial | |
| do i = 1, 10 | |
| do j = 1, 10 | |
| end do | |
| end do | |
| end | |
| subroutine f03 | |
| integer :: i, j, k | |
| !ERROR: This construct requires a perfect nest of depth 3, but the associated nest is a perfect nest of depth 1 | |
| !BECAUSE: SIZES clause was specified with 3 arguments | |
| !$omp tile sizes(2, 2, 2) | |
| !BECAUSE: This construct does not contain a loop nest | |
| do i = 1, 10 | |
| !BECAUSE: LOOPRANGE clause was specified with a count of 1 starting at loop 1 | |
| !BECAUSE: This FUSE construct does not result in a loop nest, but a proper loop sequence | |
| !$omp fuse depth(2) looprange(1, 1) | |
| do j = 1, 10 | |
| do k = 1, 10 | |
| end do | |
| end do | |
| do j = 1, 10 | |
| do k = 1, 10 | |
| end do | |
| end do | |
| !$omp end fuse | |
| end do | |
| end | |