[LLVM] Fix Maintainers.md formatting (NFC)
[llvm-project.git] / flang / test / Examples / omp-device-constructs.f90
blob916f7c936f1aeb0bc4fbb9aadd850c01c1a801bf
1 ! REQUIRES: plugins, examples, shell
3 !RUN: %flang_fc1 -load %llvmshlibdir/flangOmpReport.so -plugin flang-omp-report -fopenmp %s -o - | FileCheck %s
5 ! Check OpenMP clause validity for the following directives:
6 ! 2.10 Device constructs
7 program main
9 real(8) :: arrayA(256), arrayB(256)
10 integer :: N
12 arrayA = 1.414
13 arrayB = 3.14
14 N = 256
16 !$omp target map(arrayA)
17 do i = 1, N
18 a = 3.14
19 enddo
20 !$omp end target
22 !$omp target device(0)
23 do i = 1, N
24 a = 3.14
25 enddo
26 !$omp end target
28 !$omp target defaultmap(tofrom:scalar)
29 do i = 1, N
30 a = 3.14
31 enddo
32 !$omp end target
34 !$omp teams num_teams(3) thread_limit(10) default(shared) private(i) shared(a)
35 do i = 1, N
36 a = 3.14
37 enddo
38 !$omp end teams
40 !$omp target map(tofrom:a)
41 do i = 1, N
42 a = 3.14
43 enddo
44 !$omp end target
46 !$omp target data device(0) map(to:a)
47 do i = 1, N
48 a = 3.14
49 enddo
50 !$omp end target data
52 end program main
54 ! CHECK: ---
55 ! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
56 ! CHECK-NEXT: line: 16
57 ! CHECK-NEXT: construct: target
58 ! CHECK-NEXT: clauses:
59 ! CHECK-NEXT: - clause: map
60 ! CHECK-NEXT: details: arraya
61 ! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
62 ! CHECK-NEXT: line: 22
63 ! CHECK-NEXT: construct: target
64 ! CHECK-NEXT: clauses:
65 ! CHECK-NEXT: - clause: device
66 ! CHECK-NEXT: details: '0'
67 ! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
68 ! CHECK-NEXT: line: 28
69 ! CHECK-NEXT: construct: target
70 ! CHECK-NEXT: clauses:
71 ! CHECK-NEXT: - clause: defaultmap
72 ! CHECK-NEXT: details: 'tofrom:scalar'
73 ! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
74 ! CHECK-NEXT: line: 34
75 ! CHECK-NEXT: construct: teams
76 ! CHECK-NEXT: clauses:
77 ! CHECK-NEXT: - clause: default
78 ! CHECK-NEXT: details: shared
79 ! CHECK-NEXT: - clause: num_teams
80 ! CHECK-NEXT: details: '3'
81 ! CHECK-NEXT: - clause: private
82 ! CHECK-NEXT: details: i
83 ! CHECK-NEXT: - clause: shared
84 ! CHECK-NEXT: details: a
85 ! CHECK-NEXT: - clause: thread_limit
86 ! CHECK-NEXT: details: '10'
87 ! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
88 ! CHECK-NEXT: line: 40
89 ! CHECK-NEXT: construct: target
90 ! CHECK-NEXT: clauses:
91 ! CHECK-NEXT: - clause: map
92 ! CHECK-NEXT: details: 'tofrom:a'
93 ! CHECK-NEXT: - file: '{{[^"]*}}omp-device-constructs.f90'
94 ! CHECK-NEXT: line: 46
95 ! CHECK-NEXT: construct: target data
96 ! CHECK-NEXT: clauses:
97 ! CHECK-NEXT: - clause: device
98 ! CHECK-NEXT: details: '0'
99 ! CHECK-NEXT: - clause: map
100 ! CHECK-NEXT: details: 'to:a'
101 ! CHECK-NEXT: ...