1 /* PR tree-optimization/107967 */
2 /* { dg-do compile { target float64 } } */
3 /* { dg-options "-O2 -fno-rounding-math -fno-trapping-math -fdump-tree-optimized" } */
4 /* { dg-add-options float64 } */
5 /* { dg-final { scan-tree-dump-times "return\[ \t]\*-?Inf;" 3 "optimized" } } */
6
7 _Float64
8 foo (void)
9 {
10 const _Float64 huge = 1.0e+300f64;
11 return huge * huge;
12 }
13
14 _Float64
15 bar (void)
16 {
17 const _Float64 huge = 1.0e+300f64;
18 return huge * -huge;
19 }
20
21 _Float64
22 baz (void)
23 {
24 const _Float64 a = 0x1.fffffffffffffp+1023f64;
25 const _Float64 b = 0x1.fffffffffffffp+970f64;
26 return a + b;
27 }
28
29 _Float64
30 qux (void)
31 {
32 const _Float64 a = 0x1.fffffffffffffp+1023f64;
33 const _Float64 b = 0x1.fffffffffffffp+969f64;
34 return a + b;
35 }