(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr107967-2.c
       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  }