Translate libgomp.oacc-c-c++-common/lib-32.c into Fortran
libgomp/ * testsuite/libgomp.oacc-fortran/lib-32-1.f: New file. * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise. From-SVN: r248411
This commit is contained in:
parent
9b94fbc7e4
commit
a674553480
4 changed files with 356 additions and 0 deletions
|
@ -1,5 +1,8 @@
|
|||
2017-05-24 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* testsuite/libgomp.oacc-fortran/lib-32-1.f: New file.
|
||||
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
|
||||
|
||||
* openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead
|
||||
of preprocessor definitions.
|
||||
* libgomp.h (strong_alias): Guard by "#ifdef
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/* acc_present_or_create, acc_present_or_copyin, etc. */
|
||||
/* See also Fortran variants in "../libgomp.oacc-fortran/lib-32*". */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
|
179
libgomp/testsuite/libgomp.oacc-fortran/lib-32-1.f
Normal file
179
libgomp/testsuite/libgomp.oacc-fortran/lib-32-1.f
Normal file
|
@ -0,0 +1,179 @@
|
|||
! ACC_PRESENT_OR_CREATE, ACC_PRESENT_OR_COPYIN, etc.
|
||||
! Variant of "../libgomp.oacc-c-c++-common/lib-32.c".
|
||||
! Variant using "openacc_lib.h".
|
||||
|
||||
! { dg-do run }
|
||||
|
||||
PROGRAM MAIN
|
||||
IMPLICIT NONE
|
||||
INCLUDE "openacc_lib.h"
|
||||
|
||||
INTEGER, PARAMETER :: N = 10000
|
||||
INTEGER, ALLOCATABLE :: H(:)
|
||||
INTEGER :: I
|
||||
LOGICAL :: SHARED_MEM
|
||||
|
||||
ALLOCATE (H(N))
|
||||
DO I = 1, N
|
||||
H(I) = I + 0
|
||||
END DO
|
||||
|
||||
SHARED_MEM = ACC_IS_PRESENT (H)
|
||||
|
||||
CALL ACC_PRESENT_OR_CREATE (H)
|
||||
IF (.NOT. ACC_IS_PRESENT (H)) CALL ABORT
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
H(I) = I + 1
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (1, 0, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 2
|
||||
END DO
|
||||
|
||||
CALL ACC_PRESENT_OR_CREATE (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (2, 1, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 3
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (3, 2, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 4
|
||||
END DO
|
||||
|
||||
! CALL ACC_PCREATE (H)
|
||||
CALL ACC_PRESENT_OR_CREATE (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (4, 3, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 5
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (5, 4, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 6
|
||||
END DO
|
||||
|
||||
CALL ACC_PRESENT_OR_COPYIN (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (6, 5, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 7
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (7, 6, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 8
|
||||
END DO
|
||||
|
||||
! CALL ACC_PCOPYIN (H)
|
||||
CALL ACC_PRESENT_OR_COPYIN (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (8, 7, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 9
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (9, 8, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 10
|
||||
END DO
|
||||
|
||||
CALL ACC_COPYOUT (H)
|
||||
IF (.NOT. SHARED_MEM) THEN
|
||||
IF (ACC_IS_PRESENT (H)) CALL ABORT
|
||||
ENDIF
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (10, 9, SHARED_MEM)) CALL ABORT
|
||||
END DO
|
||||
|
||||
! CALL ACC_PCOPYIN (H)
|
||||
CALL ACC_PRESENT_OR_COPYIN (H)
|
||||
IF (.NOT. ACC_IS_PRESENT (H)) CALL ABORT
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (10, 9, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 11
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (11, 9, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 12
|
||||
END DO
|
||||
|
||||
! CALL ACC_PCOPYIN (H)
|
||||
CALL ACC_PRESENT_OR_COPYIN (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (12, 11, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 13
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (13, 12, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 14
|
||||
END DO
|
||||
|
||||
! CALL ACC_PCREATE (H)
|
||||
CALL ACC_PRESENT_OR_CREATE (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (14, 13, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 15
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (15, 14, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 16
|
||||
END DO
|
||||
|
||||
! CALL ACC_PCREATE (H)
|
||||
CALL ACC_PRESENT_OR_CREATE (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (16, 15, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 17
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (17, 16, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 18
|
||||
END DO
|
||||
|
||||
CALL ACC_UPDATE_SELF (H)
|
||||
IF (.NOT. ACC_IS_PRESENT (H)) CALL ABORT
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (18, 17, SHARED_MEM)) CALL ABORT
|
||||
END DO
|
||||
|
||||
CALL ACC_DELETE (H)
|
||||
IF (.NOT. SHARED_MEM) THEN
|
||||
IF (ACC_IS_PRESENT (H)) CALL ABORT
|
||||
ENDIF
|
||||
|
||||
DEALLOCATE (H)
|
||||
|
||||
END PROGRAM MAIN
|
173
libgomp/testsuite/libgomp.oacc-fortran/lib-32-2.f
Normal file
173
libgomp/testsuite/libgomp.oacc-fortran/lib-32-2.f
Normal file
|
@ -0,0 +1,173 @@
|
|||
! ACC_PRESENT_OR_CREATE, ACC_PRESENT_OR_COPYIN, etc.
|
||||
! Variant of "../libgomp.oacc-c-c++-common/lib-32.c".
|
||||
! Variant using the "openacc" module.
|
||||
|
||||
! { dg-do run }
|
||||
|
||||
PROGRAM MAIN
|
||||
USE OPENACC
|
||||
IMPLICIT NONE
|
||||
|
||||
INTEGER, PARAMETER :: N = 10000
|
||||
INTEGER, ALLOCATABLE :: H(:)
|
||||
INTEGER :: I
|
||||
LOGICAL :: SHARED_MEM
|
||||
|
||||
ALLOCATE (H(N))
|
||||
DO I = 1, N
|
||||
H(I) = I + 0
|
||||
END DO
|
||||
|
||||
SHARED_MEM = ACC_IS_PRESENT (H)
|
||||
|
||||
CALL ACC_PRESENT_OR_CREATE (H)
|
||||
IF (.NOT. ACC_IS_PRESENT (H)) CALL ABORT
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
H(I) = I + 1
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (1, 0, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 2
|
||||
END DO
|
||||
|
||||
CALL ACC_PRESENT_OR_CREATE (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (2, 1, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 3
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (3, 2, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 4
|
||||
END DO
|
||||
|
||||
CALL ACC_PCREATE (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (4, 3, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 5
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (5, 4, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 6
|
||||
END DO
|
||||
|
||||
CALL ACC_PRESENT_OR_COPYIN (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (6, 5, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 7
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (7, 6, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 8
|
||||
END DO
|
||||
|
||||
CALL ACC_PCOPYIN (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (8, 7, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 9
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (9, 8, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 10
|
||||
END DO
|
||||
|
||||
CALL ACC_COPYOUT (H)
|
||||
IF (.NOT. SHARED_MEM) THEN
|
||||
IF (ACC_IS_PRESENT (H)) CALL ABORT
|
||||
ENDIF
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (10, 9, SHARED_MEM)) CALL ABORT
|
||||
END DO
|
||||
|
||||
CALL ACC_PCOPYIN (H)
|
||||
IF (.NOT. ACC_IS_PRESENT (H)) CALL ABORT
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (10, 9, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 11
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (11, 9, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 12
|
||||
END DO
|
||||
|
||||
CALL ACC_PCOPYIN (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (12, 11, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 13
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (13, 12, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 14
|
||||
END DO
|
||||
|
||||
CALL ACC_PCREATE (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (14, 13, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 15
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (15, 14, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 16
|
||||
END DO
|
||||
|
||||
CALL ACC_PCREATE (H)
|
||||
|
||||
!$ACC PARALLEL LOOP DEFAULT (PRESENT)
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (16, 15, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 17
|
||||
END DO
|
||||
!$ACC END PARALLEL LOOP
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (17, 16, SHARED_MEM)) CALL ABORT
|
||||
H(I) = I + 18
|
||||
END DO
|
||||
|
||||
CALL ACC_UPDATE_SELF (H)
|
||||
IF (.NOT. ACC_IS_PRESENT (H)) CALL ABORT
|
||||
|
||||
DO I = 1, N
|
||||
IF (H(I) .NE. I + MERGE (18, 17, SHARED_MEM)) CALL ABORT
|
||||
END DO
|
||||
|
||||
CALL ACC_DELETE (H)
|
||||
IF (.NOT. SHARED_MEM) THEN
|
||||
IF (ACC_IS_PRESENT (H)) CALL ABORT
|
||||
ENDIF
|
||||
|
||||
DEALLOCATE (H)
|
||||
|
||||
END PROGRAM MAIN
|
Loading…
Add table
Reference in a new issue