(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
387-rint-inline-1.c
       1  /* Test rint and related functions expanded inline for 387.  All
       2     should be expanded when spurious "inexact" allowed.  */
       3  /* { dg-do compile } */
       4  /* { dg-options "-O2 -mfancy-math-387 -mfpmath=387 -ffp-int-builtin-inexact" } */
       5  
       6  #define TEST(FN, TYPE)				\
       7    do						\
       8      {						\
       9        volatile TYPE a = 1.5, b;			\
      10        b = FN (a);				\
      11      }						\
      12    while (0)
      13  
      14  #define FN_TESTS(FN)					\
      15    do							\
      16      {							\
      17        TEST (__builtin_ ## FN, double);			\
      18        TEST (__builtin_ ## FN ## f, float);		\
      19        TEST (__builtin_ ## FN ## l, long double);	\
      20      }							\
      21    while (0)
      22  
      23  void
      24  test (void)
      25  {
      26    FN_TESTS (rint);
      27    FN_TESTS (ceil);
      28    FN_TESTS (floor);
      29    FN_TESTS (trunc);
      30  }
      31  
      32  /* { dg-final { scan-assembler-not "\[ \t\]rint" } } */
      33  /* { dg-final { scan-assembler-not "\[ \t\]ceil" } } */
      34  /* { dg-final { scan-assembler-not "\[ \t\]floor" } } */
      35  /* { dg-final { scan-assembler-not "\[ \t\]trunc" } } */