annotate libgomp/testsuite/libgomp.fortran/target4.f90 @ 138:fc828634a951

merge
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 08 Nov 2018 14:17:14 +0900
parents 84e7813d76e9
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do run }
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 module target4
kono
parents:
diff changeset
4 contains
kono
parents:
diff changeset
5 subroutine foo (a,m,n)
kono
parents:
diff changeset
6 integer :: m,n,i,j
kono
parents:
diff changeset
7 double precision :: a(m, n), t
kono
parents:
diff changeset
8 !$omp target data map(a) map(to: m, n)
kono
parents:
diff changeset
9 do i=1,n
kono
parents:
diff changeset
10 t = 0.0d0
kono
parents:
diff changeset
11 !$omp target map(t)
kono
parents:
diff changeset
12 !$omp parallel do reduction(+:t)
kono
parents:
diff changeset
13 do j=1,m
kono
parents:
diff changeset
14 t = t + a(j,i) * a(j,i)
kono
parents:
diff changeset
15 end do
kono
parents:
diff changeset
16 !$omp end target
kono
parents:
diff changeset
17 t = 2.0d0 * t
kono
parents:
diff changeset
18 !$omp target
kono
parents:
diff changeset
19 !$omp parallel do
kono
parents:
diff changeset
20 do j=1,m
kono
parents:
diff changeset
21 a(j,i) = a(j,i) * t
kono
parents:
diff changeset
22 end do
kono
parents:
diff changeset
23 !$omp end target
kono
parents:
diff changeset
24 end do
kono
parents:
diff changeset
25 !$omp end target data
kono
parents:
diff changeset
26 end subroutine foo
kono
parents:
diff changeset
27 end module target4
kono
parents:
diff changeset
28 use target4, only : foo
kono
parents:
diff changeset
29 integer :: i, j
kono
parents:
diff changeset
30 double precision :: a(8, 9), res(8, 9)
kono
parents:
diff changeset
31 do i = 1, 8
kono
parents:
diff changeset
32 do j = 1, 9
kono
parents:
diff changeset
33 a(i, j) = i + j
kono
parents:
diff changeset
34 end do
kono
parents:
diff changeset
35 end do
kono
parents:
diff changeset
36 call foo (a, 8, 9)
kono
parents:
diff changeset
37 res = reshape ((/ 1136.0d0, 1704.0d0, 2272.0d0, 2840.0d0, 3408.0d0, 3976.0d0, &
kono
parents:
diff changeset
38 & 4544.0d0, 5112.0d0, 2280.0d0, 3040.0d0, 3800.0d0, 4560.0d0, 5320.0d0, 6080.0d0, &
kono
parents:
diff changeset
39 & 6840.0d0, 7600.0d0, 3936.0d0, 4920.0d0, 5904.0d0, 6888.0d0, 7872.0d0, 8856.0d0, &
kono
parents:
diff changeset
40 & 9840.0d0, 10824.0d0, 6200.0d0, 7440.0d0, 8680.0d0, 9920.0d0, 11160.0d0, 12400.0d0, &
kono
parents:
diff changeset
41 & 13640.0d0, 14880.0d0, 9168.0d0, 10696.0d0, 12224.0d0, 13752.0d0, 15280.0d0, 16808.0d0, &
kono
parents:
diff changeset
42 & 18336.0d0, 19864.0d0, 12936.0d0, 14784.0d0, 16632.0d0, 18480.0d0, 20328.0d0, 22176.0d0, &
kono
parents:
diff changeset
43 & 24024.0d0, 25872.0d0, 17600.0d0, 19800.0d0, 22000.0d0, 24200.0d0, 26400.0d0, 28600.0d0, &
kono
parents:
diff changeset
44 & 30800.0d0, 33000.0d0, 23256.0d0, 25840.0d0, 28424.0d0, 31008.0d0, 33592.0d0, 36176.0d0, &
kono
parents:
diff changeset
45 & 38760.0d0, 41344.0d0, 30000.0d0, 33000.0d0, 36000.0d0, 39000.0d0, 42000.0d0, 45000.0d0, &
kono
parents:
diff changeset
46 & 48000.0d0, 51000.0d0 /), (/ 8, 9 /))
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
47 if (any (a /= res)) STOP 1
111
kono
parents:
diff changeset
48 end