diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-04-25 07:16:49 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-04-25 07:16:49 +0000 |
commit | 3b2ef6864dbb5abe099620f432bb650e84617af3 (patch) | |
tree | cbdab4041baf268d78a8b620a21bed1417a811d7 /libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90 | |
parent | 523464ff57eea48adea62ae64f3dadc464250513 (diff) | |
download | gcc-3b2ef6864dbb5abe099620f432bb650e84617af3.tar.gz |
2016-04-25 Basile Starynkevitch <basile@starynkevitch.net>
{{merging with even more of GCC 6, using subversion 1.9
svn merge -r234651:235002 ^/trunk
}}
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@235404 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90')
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90 | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90 new file mode 100644 index 00000000000..7c2e5eef904 --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70643.f90 @@ -0,0 +1,51 @@ +MODULE reduction_test + +CONTAINS + +SUBROUTINE reduction_kernel(x_min,x_max,y_min,y_max,arr,sum) + + IMPLICIT NONE + + INTEGER :: x_min,x_max,y_min,y_max + REAL(KIND=8), DIMENSION(x_min-2:x_max+2,y_min-2:y_max+2) :: arr + REAL(KIND=8) :: sum + + INTEGER :: j,k + +!$ACC DATA PRESENT(arr) COPY(sum) +!$ACC PARALLEL LOOP REDUCTION(+ : sum) + DO k=y_min,y_max + DO j=x_min,x_max + sum=sum+arr(j,k) + ENDDO + ENDDO +!$ACC END PARALLEL LOOP +!$ACC END DATA +END SUBROUTINE reduction_kernel + +END MODULE reduction_test + +program main + use reduction_test + + integer :: x_min,x_max,y_min,y_max + real(kind=8), dimension(1:10,1:10) :: arr + real(kind=8) :: sum + + x_min = 1 + x_max = 2 + y_min = 1 + y_max = 2 + + arr(:,:) = 1.0 + + sum = 0.0 + + !$acc data copy(arr) + + call reduction_kernel(x_min,x_max,y_min,y_max,arr,sum) + + !$acc end data + + if (sum .ne. 4.0) call abort +end program |