(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
builtins-8.c
       1  /* Copyright (C) 2003, 2006  Free Software Foundation.
       2  
       3     Verify that built-in math function constant folding of functions
       4     with one constant argument is correctly performed by the compiler.
       5  
       6     Written by Roger Sayle, 30th March 2003.  */
       7  
       8  /* { dg-do run } */
       9  /* { dg-options "-O2 -ffast-math" } */
      10  
      11  extern void abort(void);
      12  extern double pow(double, double);
      13  extern double sqrt(double);
      14  extern double cbrt(double);
      15  
      16  void test(double x)
      17  {
      18    if (pow(x,-1.0) != 1.0/x)
      19      abort ();
      20  
      21    if (pow(x,2.0) != x*x)
      22      abort ();
      23  
      24    if (pow(x,-2.0) != 1.0/(x*x))
      25      abort ();
      26  
      27    if (pow(x,0.5) != sqrt(x))
      28      abort ();
      29  
      30  #ifdef HAVE_C99_RUNTIME
      31    if (pow(x,1.0/3.0) != cbrt(x))
      32      abort ();
      33  #endif
      34  }
      35  
      36  int main()
      37  {
      38    test (1.0);
      39    test (2.0);
      40    return 0;
      41  }
      42