diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/graphite/id-16.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/id-16.c | 44 |
1 files changed, 44 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 000000000..faa685f80 --- /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)); + } + } + } +} |