forked from OSchip/llvm-project
102 lines
2.9 KiB
Fortran
102 lines
2.9 KiB
Fortran
! REQUIRES: plugins, examples, shell
|
|
|
|
!RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp %s -o - | FileCheck %s
|
|
|
|
! Check OpenMP clause validity for the following directives:
|
|
! 2.10 Device constructs
|
|
program main
|
|
|
|
real(8) :: arrayA(256), arrayB(256)
|
|
integer :: N
|
|
|
|
arrayA = 1.414
|
|
arrayB = 3.14
|
|
N = 256
|
|
|
|
!$omp target map(arrayA)
|
|
do i = 1, N
|
|
a = 3.14
|
|
enddo
|
|
!$omp end target
|
|
|
|
!$omp target device(0)
|
|
do i = 1, N
|
|
a = 3.14
|
|
enddo
|
|
!$omp end target
|
|
|
|
!$omp target defaultmap(tofrom:scalar)
|
|
do i = 1, N
|
|
a = 3.14
|
|
enddo
|
|
!$omp end target
|
|
|
|
!$omp teams num_teams(3) thread_limit(10) default(shared) private(i) shared(a)
|
|
do i = 1, N
|
|
a = 3.14
|
|
enddo
|
|
!$omp end teams
|
|
|
|
!$omp target map(tofrom:a)
|
|
do i = 1, N
|
|
a = 3.14
|
|
enddo
|
|
!$omp end target
|
|
|
|
!$omp target data device(0) map(to:a)
|
|
do i = 1, N
|
|
a = 3.14
|
|
enddo
|
|
!$omp end target data
|
|
|
|
end program main
|
|
|
|
! CHECK: ---
|
|
! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
|
|
! CHECK-NEXT: line: 16
|
|
! CHECK-NEXT: construct: target
|
|
! CHECK-NEXT: clauses:
|
|
! CHECK-NEXT: - clause: map
|
|
! CHECK-NEXT: details: arraya
|
|
! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
|
|
! CHECK-NEXT: line: 22
|
|
! CHECK-NEXT: construct: target
|
|
! CHECK-NEXT: clauses:
|
|
! CHECK-NEXT: - clause: device
|
|
! CHECK-NEXT: details: '0'
|
|
! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
|
|
! CHECK-NEXT: line: 28
|
|
! CHECK-NEXT: construct: target
|
|
! CHECK-NEXT: clauses:
|
|
! CHECK-NEXT: - clause: defaultmap
|
|
! CHECK-NEXT: details: 'tofrom:scalar'
|
|
! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
|
|
! CHECK-NEXT: line: 34
|
|
! CHECK-NEXT: construct: teams
|
|
! CHECK-NEXT: clauses:
|
|
! CHECK-NEXT: - clause: default
|
|
! CHECK-NEXT: details: shared
|
|
! CHECK-NEXT: - clause: num_teams
|
|
! CHECK-NEXT: details: '3'
|
|
! CHECK-NEXT: - clause: private
|
|
! CHECK-NEXT: details: i
|
|
! CHECK-NEXT: - clause: shared
|
|
! CHECK-NEXT: details: a
|
|
! CHECK-NEXT: - clause: thread_limit
|
|
! CHECK-NEXT: details: '10'
|
|
! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
|
|
! CHECK-NEXT: line: 40
|
|
! CHECK-NEXT: construct: target
|
|
! CHECK-NEXT: clauses:
|
|
! CHECK-NEXT: - clause: map
|
|
! CHECK-NEXT: details: 'tofrom:a'
|
|
! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
|
|
! CHECK-NEXT: line: 46
|
|
! CHECK-NEXT: construct: target data
|
|
! CHECK-NEXT: clauses:
|
|
! CHECK-NEXT: - clause: device
|
|
! CHECK-NEXT: details: '0'
|
|
! CHECK-NEXT: - clause: map
|
|
! CHECK-NEXT: details: 'to:a'
|
|
! CHECK-NEXT: ...
|