Commit 65b67cf3 by Tobias Burnus Committed by Tobias Burnus

Fortran - fix OpenMP 'target simd'

	gcc/fortran/
	* parse.c (parse_executable): Add missing ST_OMP_TARGET_SIMD.

	libgomp/
	* testsuite/libgomp.fortran/target-simd.f90: New.

From-SVN: r276698
parent 07f37a7f
2019-10-08 Tobias Burnus <tobias@codesourcery.com>
* parse.c (parse_executable): Add missing ST_OMP_TARGET_SIMD.
2019-10-08 Tobias Burnus <tobias@codesourcery.com>
* match.h (gfc_match_omp_eos_error): Renamed from gfc_match_omp_eos.
* openmp.c (gfc_match_omp_eos): Make static.
(gfc_match_omp_eos_error): New.
......
......@@ -5534,6 +5534,7 @@ parse_executable (gfc_statement st)
case ST_OMP_SIMD:
case ST_OMP_TARGET_PARALLEL_DO:
case ST_OMP_TARGET_PARALLEL_DO_SIMD:
case ST_OMP_TARGET_SIMD:
case ST_OMP_TARGET_TEAMS_DISTRIBUTE:
case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO:
case ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD:
......
2019-10-08 Tobias Burnus <tobias@codesourcery.com>
* gfortran.dg/gomp/target-simd.f90: New.
2019-10-02 Julian Brown <julian@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
......
! { dg-do run }
program test
implicit none
real, allocatable :: a(:), b(:)
integer :: i
a = [(i, i = 1, 100)]
allocate(b, mold=a)
b = 0
!$omp target simd map(to:a) map(from:b)
do i = 0, size(a)
b(i) = 5.0 * a(i)
end do
if (any (b - 5.0 *a > 10.0*epsilon(a))) call abort()
!$omp target simd map(to:a) map(from:b)
do i = 0, size(a)
b(i) = 2.0 * a(i)
end do
!$omp end target simd
if (any (b - 2.0 *a > 10.0*epsilon(a))) call abort()
end program test
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment