OSDN Git Service

For Greta Yorsh.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / tree-ssa / pr43491.c
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-pre-stats" } */
3
4 #define REGISTER register
5
6 #if defined __arm__
7 # define REG1 asm("r4")
8 #elif defined __i386__
9 # define REG1 asm("ebx")
10 #elif defined __mips__
11 # define REG1 asm("s0")
12 #elif defined __x86_64__
13 # define REG1 asm("rbp")
14 #else
15 # undef REGISTER
16 # define REGISTER
17 # define REG1
18 #endif
19
20 REGISTER long data_0 REG1;
21 long data_3; 
22
23 long foo(long data, long v)
24 {
25         long i;
26         long t, u;
27
28         if (data)
29                 i = data_0 + data_3;
30         else {
31                 v = 2;
32                 i = 5;
33         }
34         t = data_0 + data_3;
35         u = i;
36         return v * t * u;
37 }
38 /* We should not eliminate global register variable when it is the RHS of
39    a single assignment.  */
40 /* { dg-final { scan-tree-dump-times "Eliminated: 2" 1 "pre" { target { arm-*-* i?86-*-* mips*-*-* x86_64-*-* } } } } */
41 /* { dg-final { scan-tree-dump-times "Eliminated: 3" 1 "pre" { target { ! { arm-*-* i?86-*-* mips*-*-* x86_64-*-* } } } } } */
42 /* { dg-final { cleanup-tree-dump "pre" } } */