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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.dg/] [tree-ssa/] [pr42640.c] - Blame information for rev 338

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 298 jeremybenn
/* { dg-do run } */
2
/* { dg-options "-O2 -ftree-loop-distribution" } */
3
 
4
/* Checks if loop distribution works correctly if the subscript used
5
   is assigned to a loop invariant value.  */
6
 
7
extern void abort (void);
8
struct S { int a; int b; int c; };
9
 
10
int get_rr_node_index (int i)
11
{
12
  return i;
13
}
14
 
15
struct S nodes[8];
16
struct S *rr_node = nodes;
17
volatile int io_rat = 2;
18
void
19
doit (int i, int j)
20
{
21
  int s_node, p_node, inode, ipad, iloop;
22
 
23
  for (ipad = 0; ipad < io_rat; ipad++)
24
    {
25
      p_node = get_rr_node_index (ipad+2);
26
      inode = get_rr_node_index (ipad);
27
 
28
      for (iloop = 1; iloop <= 2; iloop++)
29
        {
30
          rr_node[inode].a = i;
31
          rr_node[inode].b = j;
32
          rr_node[inode].c = ipad;
33
          inode = p_node;
34
        }
35
    }
36
}
37
 
38
int
39
main ()
40
{
41
  int i;
42
 
43
  doit (1, 2);
44
 
45
  if (rr_node[0].a != rr_node[1].a
46
      || rr_node[2].a != rr_node[3].a
47
      || rr_node[1].a != 1
48
      || rr_node[0].b != rr_node[1].b
49
      || rr_node[2].b != rr_node[3].b
50
      || rr_node[1].b != 2
51
      || rr_node[0].c != 0
52
      || rr_node[1].c != 1
53
      || rr_node[2].c != 0
54
      || rr_node[3].c != 1)
55
    abort ();
56
 
57
  return 0;
58
}

powered by: WebSVN 2.1.0

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