1 /* PR rtl-optimization/36017 */
2 /* { dg-do run } */
3 /* { dg-options "-O2" } */
4 
5 extern double sqrt (double);
6 extern void abort (void);
7 
8 __attribute__((noinline)) double
foo(double a)9 foo (double a)
10 {
11   double b, c, d = 0.7;
12   if (a <= d)
13     b = sqrt (d * a);
14   else
15     {
16       c = (1.0 - d) * (1.0 - a);
17       b = c > 0 ? 1.0 - sqrt (c) : 1.0;
18     }
19   return b;
20 }
21 
22 int
main(void)23 main (void)
24 {
25   double c = foo (0.5);
26   if (c > 0.5917)
27     abort ();
28   return 0;
29 }
30