diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2015-11-13 21:48:23 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2015-11-13 21:48:23 +0000 |
commit | 7bcc3c8608f201d618b27dc6fbf3aaf176599033 (patch) | |
tree | b7e0dc38baf42286321ff828b8ab977c88ace789 /gcc | |
parent | 5f0ba74583162080121162e6832e131222a97e78 (diff) | |
download | gcc-7bcc3c8608f201d618b27dc6fbf3aaf176599033.zip gcc-7bcc3c8608f201d618b27dc6fbf3aaf176599033.tar.gz gcc-7bcc3c8608f201d618b27dc6fbf3aaf176599033.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c | 30 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 8 |
3 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e01d0c6..68cf4e9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 diff --git a/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c b/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c new file mode 100644 index 0000000..3ff537c --- /dev/null +++ b/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c @@ -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" } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 75d5068..328d483 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -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" ] +} |