| ! 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 |
| |