111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -fdump-tree-pre-stats" } */
|
|
3 double cos (double) __attribute__ ((const));
|
|
4 double sin (double) __attribute__ ((const));
|
|
5 double f(double a)
|
|
6 {
|
|
7 double b;
|
|
8 double c,d;
|
|
9 double (*fp) (double) __attribute__ ((const));
|
|
10 /* Fully redundant call, but we need a phi node to merge the results. */
|
|
11 if (a < 2.0)
|
|
12 {
|
|
13 fp = sin;
|
|
14 c = fp (a);
|
|
15 }
|
|
16 else
|
|
17 {
|
|
18 c = 1.0;
|
|
19 fp = cos;
|
|
20 c = fp (a);
|
|
21 }
|
|
22 d = fp (a);
|
|
23 return d + c;
|
|
24 }
|
|
25
|
|
26 /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
|