aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/torture/transpose-5.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/torture/transpose-5.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/torture/transpose-5.c96
1 files changed, 96 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/transpose-5.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/transpose-5.c
new file mode 100644
index 000000000..049d7b03e
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/transpose-5.c
@@ -0,0 +1,96 @@
+/* { dg-do run } */
+/* { dg-options "-fwhole-program" } */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <string.h>
+
+void mem_init (void);
+int ARCHnodes, ARCHnodes1;
+int ***vel;
+
+/* The whole matrix VEL is flattened (3 dimensions).
+ The dimensions are NOT transposed. */
+/*--------------------------------------------------------------------------*/
+
+int
+main (int argc, char **argv)
+{
+ int i, j, k;
+
+ ARCHnodes = 2;
+ ARCHnodes1 = 4;
+
+/* Dynamic memory allocations and initializations */
+
+ mem_init ();
+
+ for (j = 0; j < 3; j++)
+ {
+ for (i = 0; i < 2; i++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ printf ("[%d][%d][%d]=%d ", i, j, k, vel[i][j][k]);
+ }
+ printf ("\n");
+ }
+ printf ("\n");
+ }
+ for (i = 0; i < 2; i++)
+ for (j = 0; j < 3; j++)
+ free (vel[i][j]);
+
+ for (i = 0; i < 2; i++)
+ free (vel[i]);
+
+ free (vel);
+ return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+/* Dynamic memory allocations and initializations */
+
+void
+mem_init (void)
+{
+
+ signed int i, j, k,d;
+
+ d = 0;
+ vel = (int ***) malloc (ARCHnodes * sizeof (int **));
+
+ for (i = 0; i < ARCHnodes; i++)
+ {
+ vel[i] = (int **) malloc (3 * sizeof (int *));
+ if (vel[i] == (int **) NULL)
+ {
+ fprintf (stderr, "malloc failed for vel[%d]\n", i);
+ fflush (stderr);
+ exit (0);
+ }
+ }
+ for (i = 0; i < ARCHnodes; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ vel[i][j] = (int *) malloc (ARCHnodes1 * sizeof (int));
+ }
+ }
+ for (i = 0; i < ARCHnodes; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ for (k = 0; k < ARCHnodes1; k++)
+ {
+ printf ("acc to dim2 ");
+ vel[i][j][k] = d;
+ d++;
+ }
+ }
+ }
+ printf ("\n");
+}
+
+/*--------------------------------------------------------------------------*/