xref: /llvm-project/flang/test/Semantics/OpenMP/reduction09.f90 (revision 366eade911b54878c9cc1835d2544fb4ba907ef5)
1! RUN: %python %S/../test_symbols.py %s %flang_fc1 -fopenmp
2! OpenMP Version 4.5
3! 2.15.3.6 Reduction Clause Positive cases.
4!DEF: /omp_reduction MainProgram
5program omp_reduction
6  !DEF: /omp_reduction/i ObjectEntity INTEGER(4)
7  integer i
8  !DEF: /omp_reduction/k ObjectEntity INTEGER(4)
9  integer :: k = 10
10  !DEF: /omp_reduction/a ObjectEntity INTEGER(4)
11  integer a(10)
12  !DEF: /omp_reduction/b ObjectEntity INTEGER(4)
13  integer b(10,10,10)
14
15  !$omp parallel  shared(k)
16  !$omp do  reduction(+:k)
17  !DEF: /omp_reduction/OtherConstruct1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
18  do i=1,10
19    !DEF: /omp_reduction/OtherConstruct1/OtherConstruct1/k (OmpReduction) HostAssoc INTEGER(4)
20    k = k+1
21  end do
22  !$omp end do
23  !$omp end parallel
24
25
26  !$omp parallel do  reduction(+:a(10))
27  !DEF: /omp_reduction/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
28  do i=1,10
29    !DEF: /omp_reduction/OtherConstruct2/k HostAssoc INTEGER(4)
30    k = k+1
31  end do
32  !$omp end parallel do
33
34
35  !$omp parallel do  reduction(+:a(1:10:1))
36  !DEF: /omp_reduction/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
37  do i=1,10
38    !DEF: /omp_reduction/OtherConstruct3/k HostAssoc INTEGER(4)
39    k = k+1
40  end do
41  !$omp end parallel do
42
43  !$omp parallel do  reduction(+:b(1:10:1,1:5,2))
44  !DEF: /omp_reduction/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
45  do i=1,10
46    !DEF: /omp_reduction/OtherConstruct4/k HostAssoc INTEGER(4)
47    k = k+1
48  end do
49  !$omp end parallel do
50
51  !$omp parallel do  reduction(+:b(1:10:1,1:5,2:5:1))
52  !DEF: /omp_reduction/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
53  do i=1,10
54    !DEF: /omp_reduction/OtherConstruct5/k HostAssoc INTEGER(4)
55    k = k+1
56  end do
57  !$omp end parallel do
58
59  !$omp parallel  private(i)
60  !$omp do reduction(+:k) reduction(+:j)
61  !DEF: /omp_reduction/OtherConstruct6/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
62  do i=1,10
63    !DEF: /omp_reduction/OtherConstruct6/OtherConstruct1/k (OmpReduction) HostAssoc INTEGER(4)
64    k = k+1
65  end do
66  !$omp end do
67  !$omp end parallel
68
69  !$omp do reduction(+:k) reduction(*:j) reduction(+:l)
70  !DEF: /omp_reduction/OtherConstruct7/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
71  do i=1,10
72    !DEF: /omp_reduction/OtherConstruct7/k (OmpReduction) HostAssoc INTEGER(4)
73    k = k+1
74  end do
75  !$omp end do
76end program omp_reduction
77