* lib/target-supports.exp (check_effective_target_offload_nvptx): New.
* gcc.dg/goacc/nvptx-merged-loop.c: New.
From-SVN: r230353
+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
--- /dev/null
+/* { 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" } } */
}
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" ]
+}