[hsa testsuite] Gridification tests
2016-03-07 Martin Jambor <mjambor@suse.cz> * lib/target-supports.exp (check_effective_target_offload_hsa): New. * c-c++-common/gomp/gridify-1.c: New test. * gfortran.dg/gomp/gridify-1.f90: Likewise. From-SVN: r234043
This commit is contained in:
parent
4bf1cec711
commit
f86e631e8b
4 changed files with 84 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2016-03-07 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
* lib/target-supports.exp (check_effective_target_offload_hsa): New.
|
||||
* c-c++-common/gomp/gridify-1.c: New test.
|
||||
* gfortran.dg/gomp/gridify-1.f90: Likewise.
|
||||
|
||||
2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
|
||||
|
||||
* gcc.target/arm/pr45701-1.c: Change assembler scan to not
|
||||
|
|
54
gcc/testsuite/c-c++-common/gomp/gridify-1.c
Normal file
54
gcc/testsuite/c-c++-common/gomp/gridify-1.c
Normal file
|
@ -0,0 +1,54 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target offload_hsa } */
|
||||
/* { dg-options "-fopenmp -fdump-tree-omplower-details" } */
|
||||
|
||||
void
|
||||
foo1 (int n, int *a, int workgroup_size)
|
||||
{
|
||||
int i;
|
||||
#pragma omp target
|
||||
#pragma omp teams thread_limit(workgroup_size)
|
||||
#pragma omp distribute parallel for shared(a) firstprivate(n) private(i)
|
||||
for (i = 0; i < n; i++)
|
||||
a[i]++;
|
||||
}
|
||||
|
||||
void
|
||||
foo2 (int j, int n, int *a)
|
||||
{
|
||||
int i;
|
||||
#pragma omp target teams
|
||||
#pragma omp distribute parallel for shared(a) firstprivate(n) private(i) firstprivate(j)
|
||||
for (i = j + 1; i < n; i++)
|
||||
a[i] = i;
|
||||
}
|
||||
|
||||
void
|
||||
foo3 (int j, int n, int *a)
|
||||
{
|
||||
int i;
|
||||
#pragma omp target teams
|
||||
#pragma omp distribute parallel for shared(a) firstprivate(n) private(i) firstprivate(j)
|
||||
for (i = j + 1; i < n; i += 3)
|
||||
a[i] = i;
|
||||
}
|
||||
|
||||
void
|
||||
foo4 (int j, int n, int *a)
|
||||
{
|
||||
#pragma omp parallel
|
||||
{
|
||||
#pragma omp single
|
||||
{
|
||||
int i;
|
||||
#pragma omp target
|
||||
#pragma omp teams
|
||||
#pragma omp distribute parallel for shared(a) firstprivate(n) private(i) firstprivate(j)
|
||||
for (i = j + 1; i < n; i += 3)
|
||||
a[i] = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "Target construct will be turned into a gridified GPGPU kernel" 4 "omplower" } } */
|
16
gcc/testsuite/gfortran.dg/gomp/gridify-1.f90
Normal file
16
gcc/testsuite/gfortran.dg/gomp/gridify-1.f90
Normal file
|
@ -0,0 +1,16 @@
|
|||
! { dg-do compile }
|
||||
! { dg-require-effective-target offload_hsa }
|
||||
! { dg-options "-fopenmp -fdump-tree-omplower-details" } */
|
||||
|
||||
subroutine vector_square(n, a, b)
|
||||
integer i, n, b(n), a(n)
|
||||
!$omp target teams
|
||||
!$omp distribute parallel do
|
||||
do i=1,n
|
||||
b(i) = a(i) * a(i)
|
||||
enddo
|
||||
!$omp end distribute parallel do
|
||||
!$omp end target teams
|
||||
end subroutine vector_square
|
||||
|
||||
! { dg-final { scan-tree-dump "Target construct will be turned into a gridified GPGPU kernel" "omplower" } }
|
|
@ -6937,3 +6937,11 @@ proc check_effective_target_offload_nvptx { } {
|
|||
int main () {return 0;}
|
||||
} "-foffload=nvptx-none" ]
|
||||
}
|
||||
|
||||
# Return 1 if the compiler has been configured with hsa offloading.
|
||||
|
||||
proc check_effective_target_offload_hsa { } {
|
||||
return [check_no_compiler_messages offload_hsa assembly {
|
||||
int main () {return 0;}
|
||||
} "-foffload=hsa" ]
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue