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" } } */