diff options
Diffstat (limited to 'libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c')
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c new file mode 100644 index 0000000..f7f04cb --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c @@ -0,0 +1,40 @@ +/* { dg-do run } */ +/* { dg-additional-options "-ftree-parallelize-loops=32" } */ + +#include <stdlib.h> + +#define N 100 + +int a[N][N]; + +void __attribute__((noinline, noclone)) +foo (int m, int n) +{ + int i, j; + #pragma acc kernels + { +#pragma acc loop collapse(2) + for (i = 0; i < m; i++) + for (j = 0; j < n; j++) + a[i][j] = 1; + } +} + +int +main (void) +{ + int i, j; + + for (i = 0; i < N; i++) + for (j = 0; j < N; j++) + a[i][j] = 0; + + foo (N, N); + + for (i = 0; i < N; i++) + for (j = 0; j < N; j++) + if (a[i][j] != 1) + abort (); + + return 0; +} |