target-supports.exp (check_effective_target_offload_nvptx): New.
* lib/target-supports.exp (check_effective_target_offload_nvptx): New. * gcc.dg/goacc/nvptx-merged-loop.c: New. From-SVN: r230353
This commit is contained in:
parent
5f0ba74583
commit
7bcc3c8608
3 changed files with 43 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-11-13 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* lib/target-supports.exp (check_effective_target_offload_nvptx): New.
|
||||
* gcc.dg/goacc/nvptx-merged-loop.c: New.
|
||||
|
||||
2015-11-13 Steven G. Kargl <kargl@gccc.gnu.org>
|
||||
|
||||
PR fortran/68319
|
||||
|
|
30
gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c
Normal file
30
gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c
Normal file
|
@ -0,0 +1,30 @@
|
|||
/* { dg-do link } */
|
||||
/* { dg-require-effective-target offload_nvptx } */
|
||||
/* { dg-options "-fopenacc -O2 -foffload=-fdump-rtl-mach\\ -dumpbase\\ nvptx-merged-loop.c\\ -Wa,--no-verify" } */
|
||||
|
||||
#define N (32*32*32+17)
|
||||
void __attribute__ ((noinline)) Foo (int *ary)
|
||||
{
|
||||
int ix;
|
||||
|
||||
#pragma acc parallel num_workers(32) vector_length(32) copyout(ary[0:N])
|
||||
{
|
||||
/* Loop partitioning should be merged. */
|
||||
#pragma acc loop worker vector
|
||||
for (unsigned ix = 0; ix < N; ix++)
|
||||
{
|
||||
ary[ix] = ix;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main ()
|
||||
{
|
||||
int ary[N];
|
||||
|
||||
Foo (ary);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-rtl-dump "Merging loop .* into " "mach" } } */
|
|
@ -6716,3 +6716,11 @@ proc check_effective_target_vect_max_reduc { } {
|
|||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
# Return 1 if there is an nvptx offload compiler.
|
||||
|
||||
proc check_effective_target_offload_nvptx { } {
|
||||
return [check_no_compiler_messages offload_nvptx object {
|
||||
int main () {return 0;}
|
||||
} "-foffload=nvptx-none" ]
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue