(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
builtin-convert-4.c
       1  /* Copyright (C) 2007  Free Software Foundation.
       2  
       3     Verify that nearbyint isn't transformed into e.g. rint or lrint
       4     when -ftrapping-math is set.
       5  
       6     Written by Kaveh ghazi, 2007-03-04.  */
       7  
       8  /* { dg-do compile } */
       9  /* { dg-options "-ftrapping-math -fdump-tree-original" } */
      10  
      11  #include "../builtins-config.h"
      12  
      13  extern void bar (long);
      14  
      15  #define TESTIT(FUNC) do { \
      16    bar (__builtin_##FUNC(d)); \
      17    bar (__builtin_##FUNC##f(f)); \
      18    bar (__builtin_##FUNC##l(ld)); \
      19  } while (0)
      20  
      21  void __attribute__ ((__noinline__)) foo (double d, float f, long double ld)
      22  {
      23    TESTIT(nearbyint);
      24  }
      25  
      26  int main()
      27  {
      28    foo (1.0, 2.0, 3.0);
      29    return 0;
      30  }
      31  
      32  /* { dg-final { scan-tree-dump-times "nearbyint " 1 "original" } } */
      33  /* { dg-final { scan-tree-dump-times "nearbyintf" 1 "original" } } */
      34  /* { dg-final { scan-tree-dump-times "nearbyintl" 1 "original" } } */