brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · ced7dd4 Raw
104 lines · plain
1! RUN: %python %S/../test_errors.py %s %flang -fopenacc2 3! Check OpenACC canonalization validity for the construct defined below:4!   2.9 Loop5!   2.11 Parallel Loop6!   2.11 Kernels Loop7!   2.11 Serial Loop8 9program openacc_clause_validity10 11  implicit none12 13  integer :: i, j14  integer :: N = 25615  real(8) :: a(256)16  real(8) :: aa(256, 256)17 18  i = 019 20  !ERROR: DO loop after the LOOP directive must have loop control21  !$acc loop22  do23  end do24 25  !$acc parallel loop26  do i = 1, N27    a(i) = 3.1428  end do29 30  !$acc kernels loop31  do i = 1, N32    a(i) = 3.1433  end do34 35  !$acc serial loop36  do i = 1, N37    a(i) = 3.1438  end do39 40  !$acc parallel loop41  do i = 1, N42    a(i) = 3.1443  end do44  !$acc end parallel loop45 46  !$acc kernels loop47  do i = 1, N48    a(i) = 3.1449  end do50  !$acc end kernels loop51 52  !$acc serial loop53  do i = 1, N54    a(i) = 3.1455  end do56  !$acc end serial loop57 58  !ERROR: DO loop after the PARALLEL LOOP directive must have loop control59  !$acc parallel loop60  do61  end do62 63  !ERROR: DO loop after the KERNELS LOOP directive must have loop control64  !$acc kernels loop65  do66  end do67 68  !ERROR: DO loop after the SERIAL LOOP directive must have loop control69  !$acc serial loop70  do71  end do72 73  !$acc parallel74  !ERROR: The loop construct with the TILE clause must be followed by 2 tightly-nested loops75  !$acc loop tile(2, 2)76  do i = 1, N77    a(i) = 3.1478  end do79  !$acc end parallel80 81  !ERROR: The loop construct with the TILE clause must be followed by 2 tightly-nested loops82  !$acc parallel loop tile(2, 2)83  do i = 1, N84    a(i) = 3.1485  end do86 87  !$acc parallel88  !ERROR: TILE and COLLAPSE clause may not appear on loop construct associated with DO CONCURRENT89  !$acc loop collapse(2)90  do concurrent (i = 1:N, j = 1:N)91    aa(i, j) = 3.1492  end do93  !$acc end parallel94 95  !$acc parallel96  !ERROR: TILE and COLLAPSE clause may not appear on loop construct associated with DO CONCURRENT97  !$acc loop tile(2, 2)98  do concurrent (i = 1:N, j = 1:N)99    aa(i, j) = 3.14100  end do101  !$acc end parallel102 103end program openacc_clause_validity104