1/* { dg-do compile } */
2/* { dg-options "-O2 -fdump-tree-pre-stats" } */
3double cos (double) __attribute__ ((const));
4double sin (double) __attribute__ ((const));
5double 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"} } */
27/* { dg-final { cleanup-tree-dump "pre" } } */
28