81 lines
2.2 KiB
Fortran
81 lines
2.2 KiB
Fortran
! RUN: %flang_fc1 -fdebug-unparse-no-sema -fopenmp %s | FileCheck --ignore-case %s
|
|
! Verifies the unparsing of the Openmp Target Device constructs
|
|
PROGRAM main
|
|
USE OMP_LIB
|
|
IMPLICIT NONE
|
|
INTEGER:: X, Y
|
|
INTEGER:: M = 1
|
|
|
|
!--------------------------------------------
|
|
! constant argument
|
|
!--------------------------------------------
|
|
!CHECK: !$OMP TARGET DEVICE(0)
|
|
!CHECK: !$OMP END TARGET
|
|
!$OMP TARGET DEVICE(0)
|
|
M = M + 1
|
|
!$OMP END TARGET
|
|
|
|
!--------------------------------------------
|
|
! constant expression argument
|
|
!--------------------------------------------
|
|
!CHECK: !$OMP TARGET DEVICE(2+1)
|
|
!CHECK: !$OMP END TARGET
|
|
!$OMP TARGET DEVICE(2+1)
|
|
M = M + 1
|
|
!$OMP END TARGET
|
|
|
|
!--------------------------------------------
|
|
! variable argument
|
|
!--------------------------------------------
|
|
!CHECK: !$OMP TARGET DEVICE(X)
|
|
!CHECK: !$OMP END TARGET
|
|
!$OMP TARGET DEVICE(X)
|
|
M = M + 1
|
|
!$OMP END TARGET
|
|
|
|
!--------------------------------------------
|
|
! variable expression argument
|
|
!--------------------------------------------
|
|
!CHECK: !$OMP TARGET DEVICE(X-Y)
|
|
!CHECK: !$OMP END TARGET
|
|
!$OMP TARGET DEVICE(X-Y)
|
|
M = M + 1
|
|
!$OMP END TARGET
|
|
|
|
!--------------------------------------------
|
|
! Ancestor followed by constant argument
|
|
!--------------------------------------------
|
|
!CHECK: !$OMP TARGET DEVICE(ANCESTOR:0)
|
|
!CHECK: !$OMP END TARGET
|
|
!$OMP TARGET DEVICE(ANCESTOR: 0)
|
|
M = M + 1
|
|
!$OMP END TARGET
|
|
|
|
!--------------------------------------------
|
|
! Device_Num followed by constant argument
|
|
!--------------------------------------------
|
|
!CHECK: !$OMP TARGET DEVICE(DEVICE_NUM:1)
|
|
!CHECK: !$OMP END TARGET
|
|
!$OMP TARGET DEVICE(DEVICE_NUM: 1)
|
|
M = M + 1
|
|
!$OMP END TARGET
|
|
|
|
!--------------------------------------------
|
|
! Ancestor followed by variable expression argument
|
|
!--------------------------------------------
|
|
!CHECK: !$OMP TARGET DEVICE(ANCESTOR:X+Y)
|
|
!CHECK: !$OMP END TARGET
|
|
!$OMP TARGET DEVICE(ANCESTOR: X + Y)
|
|
M = M + 1
|
|
!$OMP END TARGET
|
|
|
|
!--------------------------------------------
|
|
! Device_Num followed by variable expression argument
|
|
!--------------------------------------------
|
|
!CHECK: !$OMP TARGET DEVICE(DEVICE_NUM:X-Y)
|
|
!CHECK: !$OMP END TARGET
|
|
!$OMP TARGET DEVICE(DEVICE_NUM: X - Y)
|
|
M = M + 1
|
|
!$OMP END TARGET
|
|
END PROGRAM
|