xref: /llvm-project/flang/test/Parser/OpenMP/target_device_unparse.f90 (revision 05096590e0ce68bdc6d32aac9ddbe8728e7514ae)
1! RUN: %flang_fc1 -fdebug-unparse-no-sema -fopenmp %s | FileCheck --ignore-case %s
2! Verifies the unparsing of the Openmp Target Device constructs
3PROGRAM main
4    USE OMP_LIB
5    IMPLICIT NONE
6    INTEGER:: X, Y
7    INTEGER:: M = 1
8
9!--------------------------------------------
10! constant argument
11!--------------------------------------------
12!CHECK: !$OMP TARGET DEVICE(0)
13!CHECK: !$OMP END TARGET
14!$OMP TARGET DEVICE(0)
15  M = M + 1
16!$OMP END TARGET
17
18!--------------------------------------------
19! constant expression argument
20!--------------------------------------------
21!CHECK: !$OMP TARGET DEVICE(2+1)
22!CHECK: !$OMP END TARGET
23!$OMP TARGET DEVICE(2+1)
24  M = M + 1
25!$OMP END TARGET
26
27!--------------------------------------------
28! variable argument
29!--------------------------------------------
30!CHECK: !$OMP TARGET DEVICE(X)
31!CHECK: !$OMP END TARGET
32!$OMP TARGET DEVICE(X)
33  M = M + 1
34!$OMP END TARGET
35
36!--------------------------------------------
37! variable expression argument
38!--------------------------------------------
39!CHECK: !$OMP TARGET DEVICE(X-Y)
40!CHECK: !$OMP END TARGET
41!$OMP TARGET DEVICE(X-Y)
42  M = M + 1
43!$OMP END TARGET
44
45!--------------------------------------------
46! Ancestor followed by constant argument
47!--------------------------------------------
48!CHECK: !$OMP TARGET DEVICE(ANCESTOR: 0)
49!CHECK: !$OMP END TARGET
50!$OMP TARGET DEVICE(ANCESTOR: 0)
51  M = M + 1
52!$OMP END TARGET
53
54!--------------------------------------------
55! Device_Num followed by constant argument
56!--------------------------------------------
57!CHECK: !$OMP TARGET DEVICE(DEVICE_NUM: 1)
58!CHECK: !$OMP END TARGET
59!$OMP TARGET DEVICE(DEVICE_NUM: 1)
60  M = M + 1
61!$OMP END TARGET
62
63!--------------------------------------------
64! Ancestor followed by variable expression argument
65!--------------------------------------------
66!CHECK: !$OMP TARGET DEVICE(ANCESTOR: X+Y)
67!CHECK: !$OMP END TARGET
68!$OMP TARGET DEVICE(ANCESTOR: X + Y)
69  M = M + 1
70!$OMP END TARGET
71
72!--------------------------------------------
73! Device_Num followed by variable expression argument
74!--------------------------------------------
75!CHECK: !$OMP TARGET DEVICE(DEVICE_NUM: X-Y)
76!CHECK: !$OMP END TARGET
77!$OMP TARGET DEVICE(DEVICE_NUM: X - Y)
78  M = M + 1
79!$OMP END TARGET
80END PROGRAM
81