blob: 0b4f75e7ddccbf8b2598160c77c9d389d744ea54 [file] [log] [blame]
! RUN: %flang_fc1 -fdebug-unparse -fopenmp %s | FileCheck --ignore-case %s
! RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp %s | FileCheck --check-prefix="PARSE-TREE" %s
subroutine openmp_declare_target
integer, save :: x, y
!CHECK: !$omp declare target device_type(host) enter(x)
!$omp declare target device_type(host) enter(x)
!CHECK: !$omp declare target device_type(nohost) enter(x)
!$omp declare target device_type(nohost) enter(x)
!CHECK: !$omp declare target device_type(any) enter(x)
!$omp declare target device_type(any) enter(x)
!CHECK: !$omp declare target device_type(host) to(x)
!$omp declare target device_type(host) to(x)
!CHECK: !$omp declare target device_type(nohost) to(x)
!$omp declare target device_type(nohost) to(x)
!CHECK: !$omp declare target device_type(any) to(x)
!$omp declare target device_type(any) to(x)
!CHECK: !$omp declare target device_type(host) enter(y) to(x)
!$omp declare target device_type(host) enter(y) to(x)
!CHECK: !$omp declare target device_type(nohost) enter(y) to(x)
!$omp declare target device_type(nohost) enter(y) to(x)
!CHECK: !$omp declare target device_type(any) enter(y) to(x)
!$omp declare target device_type(any) enter(y) to(x)
integer :: a(1024), i
!CHECK: do
do i = 1, 1024
a(i) = i
!CHECK: end do
end do
!PARSE-TREE: OpenMPDeclarativeConstruct -> OpenMPDeclareTargetConstruct
!PARSE-TREE: OmpDeclareTargetSpecifier -> OmpDeclareTargetWithClause -> OmpClauseList -> OmpClause -> DeviceType -> OmpDeviceTypeClause -> Type = Host
!PARSE-TREE: OmpDeclareTargetSpecifier -> OmpDeclareTargetWithClause -> OmpClauseList -> OmpClause -> DeviceType -> OmpDeviceTypeClause -> Type = Nohost
!PARSE-TREE: OmpDeclareTargetSpecifier -> OmpDeclareTargetWithClause -> OmpClauseList -> OmpClause -> DeviceType -> OmpDeviceTypeClause -> Type = Any
END subroutine openmp_declare_target