forked from OSchip/llvm-project
510 lines
14 KiB
Fortran
510 lines
14 KiB
Fortran
|
! RUN: %B/test/Semantics/test_errors.sh %s %flang %t
|
||
|
! OPTIONS: -fopenmp
|
||
|
|
||
|
program main
|
||
|
implicit none
|
||
|
integer :: N
|
||
|
integer :: i
|
||
|
real(8) :: a(256), b(256)
|
||
|
N = 256
|
||
|
|
||
|
!$omp distribute simd
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end distribute simd
|
||
|
|
||
|
!$omp target parallel device(0)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel
|
||
|
|
||
|
!ERROR: At most one DEVICE clause can appear on the TARGET PARALLEL directive
|
||
|
!$omp target parallel device(0) device(1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel
|
||
|
|
||
|
!$omp target parallel defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel
|
||
|
|
||
|
!ERROR: The argument TOFROM:SCALAR must be specified on the DEFAULTMAP clause
|
||
|
!$omp target parallel defaultmap(tofrom)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel
|
||
|
|
||
|
!ERROR: At most one DEFAULTMAP clause can appear on the TARGET PARALLEL directive
|
||
|
!$omp target parallel defaultmap(tofrom:scalar) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel
|
||
|
|
||
|
!$omp target parallel map(tofrom:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel
|
||
|
|
||
|
!ERROR: COPYIN clause is not allowed on the TARGET PARALLEL directive
|
||
|
!$omp target parallel copyin(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel
|
||
|
|
||
|
!$omp target parallel do device(0)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel do
|
||
|
|
||
|
!ERROR: At most one DEVICE clause can appear on the TARGET PARALLEL DO directive
|
||
|
!$omp target parallel do device(0) device(1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel do
|
||
|
|
||
|
!$omp target parallel do defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel do
|
||
|
|
||
|
!ERROR: The argument TOFROM:SCALAR must be specified on the DEFAULTMAP clause
|
||
|
!$omp target parallel do defaultmap(tofrom)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel do
|
||
|
|
||
|
!ERROR: At most one DEFAULTMAP clause can appear on the TARGET PARALLEL DO directive
|
||
|
!$omp target parallel do defaultmap(tofrom:scalar) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel do
|
||
|
|
||
|
!$omp target parallel do map(tofrom:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel do
|
||
|
|
||
|
!$omp target parallel do copyin(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target parallel do
|
||
|
|
||
|
!$omp target teams map(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!$omp target teams device(0)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: At most one DEVICE clause can appear on the TARGET TEAMS directive
|
||
|
!$omp target teams device(0) device(1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: SCHEDULE clause is not allowed on the TARGET TEAMS directive
|
||
|
!$omp target teams schedule(static)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!$omp target teams defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: The argument TOFROM:SCALAR must be specified on the DEFAULTMAP clause
|
||
|
!$omp target teams defaultmap(tofrom)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: At most one DEFAULTMAP clause can appear on the TARGET TEAMS directive
|
||
|
!$omp target teams defaultmap(tofrom:scalar) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!$omp target teams num_teams(3) thread_limit(10) default(shared) private(i) shared(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: At most one NUM_TEAMS clause can appear on the TARGET TEAMS directive
|
||
|
!$omp target teams num_teams(2) num_teams(3)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: The parameter of the NUM_TEAMS clause must be a positive integer expression
|
||
|
!$omp target teams num_teams(-1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: At most one THREAD_LIMIT clause can appear on the TARGET TEAMS directive
|
||
|
!$omp target teams thread_limit(2) thread_limit(3)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: The parameter of the THREAD_LIMIT clause must be a positive integer expression
|
||
|
!$omp target teams thread_limit(-1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: At most one DEFAULT clause can appear on the TARGET TEAMS directive
|
||
|
!$omp target teams default(shared) default(private)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!$omp target teams num_teams(2) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!$omp target teams map(tofrom:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
!ERROR: Only the TO, FROM, TOFROM, or ALLOC map types are permitted for MAP clauses on the TARGET TEAMS directive
|
||
|
!$omp target teams map(delete:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams
|
||
|
|
||
|
|
||
|
!$omp target teams distribute map(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!$omp target teams distribute device(0)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: At most one DEVICE clause can appear on the TARGET TEAMS DISTRIBUTE directive
|
||
|
!$omp target teams distribute device(0) device(1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!$omp target teams distribute defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: The argument TOFROM:SCALAR must be specified on the DEFAULTMAP clause
|
||
|
!$omp target teams distribute defaultmap(tofrom)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: At most one DEFAULTMAP clause can appear on the TARGET TEAMS DISTRIBUTE directive
|
||
|
!$omp target teams distribute defaultmap(tofrom:scalar) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!$omp target teams distribute num_teams(3) thread_limit(10) default(shared) private(i) shared(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: At most one NUM_TEAMS clause can appear on the TARGET TEAMS DISTRIBUTE directive
|
||
|
!$omp target teams distribute num_teams(2) num_teams(3)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: The parameter of the NUM_TEAMS clause must be a positive integer expression
|
||
|
!$omp target teams distribute num_teams(-1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: At most one THREAD_LIMIT clause can appear on the TARGET TEAMS DISTRIBUTE directive
|
||
|
!$omp target teams distribute thread_limit(2) thread_limit(3)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: The parameter of the THREAD_LIMIT clause must be a positive integer expression
|
||
|
!$omp target teams distribute thread_limit(-1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: At most one DEFAULT clause can appear on the TARGET TEAMS DISTRIBUTE directive
|
||
|
!$omp target teams distribute default(shared) default(private)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!$omp target teams distribute num_teams(2) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!$omp target teams distribute map(tofrom:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!ERROR: Only the TO, FROM, TOFROM, or ALLOC map types are permitted for MAP clauses on the TARGET TEAMS DISTRIBUTE directive
|
||
|
!$omp target teams distribute map(delete:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute
|
||
|
|
||
|
!$omp target teams distribute parallel do device(0)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: At most one DEVICE clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO directive
|
||
|
!$omp target teams distribute parallel do device(0) device(1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!$omp target teams distribute parallel do defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: The argument TOFROM:SCALAR must be specified on the DEFAULTMAP clause
|
||
|
!$omp target teams distribute parallel do defaultmap(tofrom)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: At most one DEFAULTMAP clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO directive
|
||
|
!$omp target teams distribute parallel do defaultmap(tofrom:scalar) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!$omp target teams distribute parallel do num_teams(3) thread_limit(10) default(shared) private(i) shared(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: At most one NUM_TEAMS clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO directive
|
||
|
!$omp target teams distribute parallel do num_teams(2) num_teams(3)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: The parameter of the NUM_TEAMS clause must be a positive integer expression
|
||
|
!$omp target teams distribute parallel do num_teams(-1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: At most one THREAD_LIMIT clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO directive
|
||
|
!$omp target teams distribute parallel do thread_limit(2) thread_limit(3)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: The parameter of the THREAD_LIMIT clause must be a positive integer expression
|
||
|
!$omp target teams distribute parallel do thread_limit(-1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: At most one DEFAULT clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO directive
|
||
|
!$omp target teams distribute parallel do default(shared) default(private)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!$omp target teams distribute parallel do num_teams(2) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!$omp target teams distribute parallel do map(tofrom:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
!ERROR: Only the TO, FROM, TOFROM, or ALLOC map types are permitted for MAP clauses on the TARGET TEAMS DISTRIBUTE PARALLEL DO directive
|
||
|
!$omp target teams distribute parallel do map(delete:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do
|
||
|
|
||
|
|
||
|
!$omp target teams distribute parallel do simd map(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!$omp target teams distribute parallel do simd device(0)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: At most one DEVICE clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive
|
||
|
!$omp target teams distribute parallel do simd device(0) device(1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!$omp target teams distribute parallel do simd defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: The argument TOFROM:SCALAR must be specified on the DEFAULTMAP clause
|
||
|
!$omp target teams distribute parallel do simd defaultmap(tofrom)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: At most one DEFAULTMAP clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive
|
||
|
!$omp target teams distribute parallel do simd defaultmap(tofrom:scalar) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!$omp target teams distribute parallel do simd num_teams(3) thread_limit(10) default(shared) private(i) shared(a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: At most one NUM_TEAMS clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive
|
||
|
!$omp target teams distribute parallel do simd num_teams(2) num_teams(3)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: The parameter of the NUM_TEAMS clause must be a positive integer expression
|
||
|
!$omp target teams distribute parallel do simd num_teams(-1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: At most one THREAD_LIMIT clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive
|
||
|
!$omp target teams distribute parallel do simd thread_limit(2) thread_limit(3)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: The parameter of the THREAD_LIMIT clause must be a positive integer expression
|
||
|
!$omp target teams distribute parallel do simd thread_limit(-1)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: At most one DEFAULT clause can appear on the TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive
|
||
|
!$omp target teams distribute parallel do simd default(shared) default(private)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!$omp target teams distribute parallel do simd num_teams(2) defaultmap(tofrom:scalar)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!$omp target teams distribute parallel do simd map(tofrom:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
!ERROR: Only the TO, FROM, TOFROM, or ALLOC map types are permitted for MAP clauses on the TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive
|
||
|
!$omp target teams distribute parallel do simd map(delete:a)
|
||
|
do i = 1, N
|
||
|
a(i) = 3.14
|
||
|
enddo
|
||
|
!$omp end target teams distribute parallel do simd
|
||
|
|
||
|
|
||
|
end program main
|
||
|
|