OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.dg/] [matrix/] [matrix-6.c] - Blame information for rev 816

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 298 jeremybenn
/* { dg-do compile } */
2
 
3
 
4
#include <stdio.h>
5
#include <stdlib.h>
6
#include <math.h>
7
#include <string.h>
8
 
9
void mem_init (void);
10
int ARCHnodes, ARCHnodes1;
11
int ***vel;
12
 
13
/* The last dimension of VEL escapes because of
14
   the assignment : *vel[1] =...
15
   Only the two external dimensions are flattened.  */
16
 
17
/*--------------------------------------------------------------------------*/
18
 
19
int
20
main (int argc, char **argv)
21
{
22
  int i, j, k;
23
 
24
  ARCHnodes = 2;
25
  ARCHnodes1 = 4;
26
 
27
/* Dynamic memory allocations and initializations */
28
 
29
  mem_init ();
30
 
31
  for (i = 0; i < ARCHnodes; i++)
32
    {
33
      for (j = 0; j < 3; j++)
34
        {
35
          for (k = 0; k < ARCHnodes1; k++)
36
            printf ("[%d][%d][%d]=%d ", i, j, k, vel[i][j][k]);
37
          printf ("\n");
38
        }
39
      printf ("\n");
40
    }
41
  for (i = 0; i < ARCHnodes; i++)
42
    for (j = 0; j < 3; j++)
43
      free (vel[i][j]);
44
 
45
  for (i = 0; i < ARCHnodes; i++)
46
    free (vel[i]);
47
 
48
  free (vel);
49
  return 0;
50
}
51
 
52
/*--------------------------------------------------------------------------*/
53
/* Dynamic memory allocations and initializations                           */
54
 
55
void
56
mem_init (void)
57
{
58
 
59
  int i, j, k,d;
60
 
61
  d = 0;
62
  vel = (int ***) malloc (ARCHnodes * sizeof (int **));
63
 
64
  for (i = 0; i < ARCHnodes; i++)
65
    {
66
      vel[i] = (int **) malloc (3 * sizeof (int *));
67
      if (vel[i] == (int **) NULL)
68
        {
69
          fprintf (stderr, "malloc failed for vel[%d]\n", i);
70
          fflush (stderr);
71
          exit (0);
72
        }
73
    }
74
  for (i = 0; i < ARCHnodes; i++)
75
    {
76
      for (j = 0; j < 3; j++)
77
        {
78
          vel[i][j] = (int *) malloc (ARCHnodes1 * sizeof (int));
79
        }
80
    }
81
  for (i = 0; i < ARCHnodes; i++)
82
    {
83
      for (j = 0; j < 3; j++)
84
        {
85
          for (k = 0; k < ARCHnodes1; k++)
86
            {
87
              vel[i][j][k] = d;
88
              d++;
89
            }
90
        }
91
    }
92
  *vel[1] = &d;
93
}
94
 
95
/*--------------------------------------------------------------------------*/
96
/* { dg-final { scan-ipa-dump-times "Flattened 2 dimensions" 1 "matrix-reorg"  } } */
97
/* { dg-final { cleanup-ipa-dump "matrix-reorg" } } */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.