aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/goacc/reduction-2.f95
blob: a1f6500551de3ca0c488475796767141f84736dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
! { dg-do compile } 
! { dg-additional-options "-fdump-tree-gimple" }

! See also '../../c-c++-common/goacc/combined-reduction.c'.

subroutine foo ()
  implicit none
  integer :: p, k, s
  integer  :: a

  !$acc parallel loop reduction(+:a)
  do p = 1,5
  enddo
  !$acc end parallel loop

  !$acc kernels loop reduction(+:a)
  do k = 2,6
  enddo
  !$acc end kernels loop

  !$acc serial loop reduction(+:a)
  do s = 1,5
  enddo
  !$acc end serial loop

end subroutine

! { dg-final { scan-tree-dump-times "target oacc_parallel reduction..:a. map.tofrom.a." 1 "gimple" } }
! { dg-final { scan-tree-dump-times "acc loop private.p. reduction..:a." 1 "gimple" } }
! { dg-final { scan-tree-dump-times "target oacc_kernels map.force_tofrom:a .len: 4.." 1 "gimple" } }
! { dg-final { scan-tree-dump-times "acc loop private.k. reduction..:a." 1 "gimple" } }
! { dg-final { scan-tree-dump-times "target oacc_serial reduction..:a. map.tofrom.a." 1 "gimple" } }
! { dg-final { scan-tree-dump-times "acc loop private.s. reduction..:a." 1 "gimple" } }