blob: 02dea4014eb7b97def60a08a83c74fb1ee95ec1d [file] [log] [blame] [edit]
! 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