diff options
author | Sebastian Pop <sebpop@gmail.com> | 2009-12-23 07:51:19 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2009-12-23 07:51:19 +0000 |
commit | 1b3abda87deea44c55a7f5ad342f671d87775a8a (patch) | |
tree | a42beddafc6bd99cf71c189c67d72ba17d42e823 /gcc/testsuite/gcc.dg | |
parent | a84a556d9739787b345228babd3e023b245df79d (diff) | |
download | gcc-1b3abda87deea44c55a7f5ad342f671d87775a8a.zip gcc-1b3abda87deea44c55a7f5ad342f671d87775a8a.tar.gz gcc-1b3abda87deea44c55a7f5ad342f671d87775a8a.tar.bz2 |
Add missing testcases.
2009-12-23 Sebastian Pop <sebpop@gmail.com>
* g++.dg/graphite/id-1.C: New.
* g++.dg/graphite/pr41305.C: New.
* gcc.dg/graphite/id-16.c: New.
* gcc.dg/graphite/interchange-10.c: New.
* gcc.dg/graphite/interchange-11.c: New.
* gcc.dg/graphite/interchange-mvt.c: New.
* gcc.dg/graphite/pr40281.c: New.
* gcc.dg/graphite/run-id-2.c: New.
* gcc.dg/graphite/scop-dsyr2k.c: New.
* gcc.dg/graphite/scop-dsyrk.c: New.
* gcc.dg/graphite/scop-mvt.c: New.
* gcc.dg/graphite/scop-sor.c: New.
* gfortran.dg/graphite/id-18.f90: New.
* gfortran.dg/graphite/interchange-3.f90: New.
* gfortran.dg/graphite/pr42050.f90: New.
* testsuite/libgomp.graphite/pr4118.c: New.
From-SVN: r155424
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/id-16.c | 44 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/interchange-10.c | 19 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/interchange-11.c | 18 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/interchange-mvt.c | 24 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/pr40281.c | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/run-id-2.c | 28 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c | 21 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/scop-dsyrk.c | 22 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/scop-mvt.c | 24 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/scop-sor.c | 18 |
10 files changed, 230 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/graphite/id-16.c b/gcc/testsuite/gcc.dg/graphite/id-16.c new file mode 100644 index 0000000..faa685f --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/id-16.c @@ -0,0 +1,44 @@ +int transformation[(2*19 - 1) * (2*19 - 1)][8]; + +const int transformation2[8][2][2] = { + {{1, 0}, {0, 1}}, + {{0, 1}, {-1, 0}}, + {{-1, 0}, {0, -1}}, + {{0, -1}, {1, 0}}, + {{0, -1}, {-1, 0}}, + {{-1, 0}, {0, 1}}, + {{0, 1}, {1, 0}}, + {{1, 0}, {0, -1}} +}; + +void +transformation_init (void) +{ + int k; + int dx; + int dy; + + for (k = 0; k < 8; k++) + { + for (dy = -19 + 1; dy <= 19 - 1; dy++) + { + for (dx = -19 + 1; dx <= 19 - 1; dx++) + { + int tx; + int ty; + do + { + *&tx = + transformation2[k][0][0] * (dx) + + transformation2[k][0][1] * (dy); + *&ty = + transformation2[k][1][0] * (dx) + + transformation2[k][1][1] * (dy); + } + while (0); + transformation[((dy + 19 - 1) * (2 * 19 - 1) + + (dx + 19 - 1))][k] = ((tx) * (19 + 1) + (ty)); + } + } + } +} diff --git a/gcc/testsuite/gcc.dg/graphite/interchange-10.c b/gcc/testsuite/gcc.dg/graphite/interchange-10.c new file mode 100644 index 0000000..0cd22a3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/interchange-10.c @@ -0,0 +1,19 @@ +double u[1782225]; +int foo(int N, int *res) +{ + int i, j; + double sum = 0.0; + + for (i = 0; i < N; i++) + for (j = 0; j < N; j++) + sum = sum + u[i + 1335 * j]; + + for (i = 0; i < N; i++) + for (j = 0; j < N; j++) + sum = sum + u[i + 1335 * j]; + + *res = sum + N; +} + +/* { dg-final { scan-tree-dump-times "will be interchanged" 2 "graphite" } } */ +/* { dg-final { cleanup-tree-dump "graphite" } } */ diff --git a/gcc/testsuite/gcc.dg/graphite/interchange-11.c b/gcc/testsuite/gcc.dg/graphite/interchange-11.c new file mode 100644 index 0000000..dea8df7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/interchange-11.c @@ -0,0 +1,18 @@ +double u[1782225]; +int foo(int N, int *res) +{ + int i, j; + double sum = 0.0; + + for (i = 0; i < 1335; i++) + { + for (j = 0; j < 1335; j++) + sum = sum + u[i + 1335 * j]; + + u[1336 * i] *= 2; + } + *res = sum; +} + +/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */ +/* { dg-final { cleanup-tree-dump "graphite" } } */ diff --git a/gcc/testsuite/gcc.dg/graphite/interchange-mvt.c b/gcc/testsuite/gcc.dg/graphite/interchange-mvt.c new file mode 100644 index 0000000..915a7ac --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/interchange-mvt.c @@ -0,0 +1,24 @@ +#define NMAX 2000 + +static double x1[NMAX], x2[NMAX], a[NMAX][NMAX], y_1[NMAX], y_2[NMAX]; + +void mvt(long N) { + + int i,j; + + for (i=0; i<N; i++) { + for (j=0; j<N; j++) { + x1[i] = x1[i] + a[i][j] * y_1[j]; + } + } + + for (i=0; i<N; i++) { + for (j=0; j<N; j++) { + x2[i] = x2[i] + a[j][i] * y_2[j]; + } + } +} + +/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */ +/* { dg-final { cleanup-tree-dump "graphite" } } */ + diff --git a/gcc/testsuite/gcc.dg/graphite/pr40281.c b/gcc/testsuite/gcc.dg/graphite/pr40281.c new file mode 100644 index 0000000..64b9a4c --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/pr40281.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O -fprefetch-loop-arrays" } */ + +void foo(int); +void bar(int n) +{ + int a[2], i, j = 0; + + for (i = 0; i < 2; i += j+1) + for (j = 0; j < (n ? 1 : 2); ++j) + foo(a[i] + a[j]); +} diff --git a/gcc/testsuite/gcc.dg/graphite/run-id-2.c b/gcc/testsuite/gcc.dg/graphite/run-id-2.c new file mode 100644 index 0000000..acaa14c --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/run-id-2.c @@ -0,0 +1,28 @@ +int a[1] = {1}; + +static int __attribute__((noinline)) foo(int n) +{ + int i, c = 0; + for (i = 0; i < n; i++) + c += a[i]; + return c; +} + +int b[2] = {2, 3}; + +static int __attribute__((noinline)) bar(int n) +{ + int i, c = 0; + for (i = 0; i < n; i++) + c += b[i]; + return c; +} + +int main() +{ + return + foo(0) != 0 || foo(1) != 1 || bar(0) != 0 || bar(1) != 2 || bar(2) != 5; +} + +/* { dg-do run } */ +/* { dg-final { cleanup-tree-dump "graphite" } } */ diff --git a/gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c b/gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c new file mode 100644 index 0000000..f5d1df1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/scop-dsyr2k.c @@ -0,0 +1,21 @@ +#define NMAX 3000 + +static double a[NMAX][NMAX], b[NMAX][NMAX], c[NMAX][NMAX]; + +void dsyr2k(long N) { + int i,j,k; + +#pragma scop + for (i=0; i<N; i++) { + for (j=0; j<N; j++) { + for (k=j; k<N; k++) { + c[j][k] += a[i][j] * b[i][k] + b[i][j] * a[i][k]; + } + } + } +#pragma endscop +} + +/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite"} } */ +/* { dg-final { cleanup-tree-dump "graphite" } } */ + diff --git a/gcc/testsuite/gcc.dg/graphite/scop-dsyrk.c b/gcc/testsuite/gcc.dg/graphite/scop-dsyrk.c new file mode 100644 index 0000000..a7bc5c4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/scop-dsyrk.c @@ -0,0 +1,22 @@ +#define NMAX 3000 +#define MEASURE_TIME 1 + +static double a[NMAX][NMAX], c[NMAX][NMAX]; + +void dsyrk(long N) +{ + int i,j,k; + +#pragma scop + for (i=0; i<N; i++) { + for (j=0; j<N; j++) { + for (k=j; k<N; k++) { + c[j][k] += a[i][j] * a[i][k]; + } + } + } +#pragma endscop +} + +/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite" } } */ +/* { dg-final { cleanup-tree-dump "graphite" } } */ diff --git a/gcc/testsuite/gcc.dg/graphite/scop-mvt.c b/gcc/testsuite/gcc.dg/graphite/scop-mvt.c new file mode 100644 index 0000000..1181cda --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/scop-mvt.c @@ -0,0 +1,24 @@ +#define NMAX 2000 + +static double x1[NMAX], x2[NMAX], a[NMAX][NMAX], y_1[NMAX], y_2[NMAX]; + +void mvt(long N) { + + int i,j; + + for (i=0; i<N; i++) { + for (j=0; j<N; j++) { + x1[i] = x1[i] + a[i][j] * y_1[j]; + } + } + + for (i=0; i<N; i++) { + for (j=0; j<N; j++) { + x2[i] = x2[i] + a[j][i] * y_2[j]; + } + } +} + +/* { dg-final { scan-tree-dump-times "number of SCoPs: 2" 1 "graphite" } } */ +/* { dg-final { cleanup-tree-dump "graphite" } } */ + diff --git a/gcc/testsuite/gcc.dg/graphite/scop-sor.c b/gcc/testsuite/gcc.dg/graphite/scop-sor.c new file mode 100644 index 0000000..32c1207 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/scop-sor.c @@ -0,0 +1,18 @@ +#define SIZE 10000 + +static double P[SIZE][SIZE]; + +void sor(int N1, int N2){ + int i, j, k; + +#pragma scop + for(i=1; i<N1-1; i++) { + for(j=1; j<N2-1; j++) { + P[i][j] = (P[i][j] + P[i][j-1] + P[i][j+1] + P[i-1][j] + P[i+1][j]) / 5; + } + } +#pragma endscop +} + +/* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite" } } */ +/* { dg-final { cleanup-tree-dump "graphite" } } */ |