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  /* Partially redundant call */
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    }
21  d = fp (a);
22  return d + c;
23}
24
25/* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
26/* { dg-final { cleanup-tree-dump "pre" } } */
27