1 /* Copyright (C) 2005 Free Software Foundation.
2 
3    Check that (long)floor, (long)floorf, (long)floorl,
4    (long long)floor, (long long)floorf, (long long)floorl,
5    (long)ceil, (long)ceilf, (long)ceill,
6    (long long)ceil, (long long)ceilf, (long long)ceill
7    built-in functions compile.
8 
9    Written by Uros Bizjak, 5th April 2005.  */
10 
11 /* { dg-do compile } */
12 /* { dg-options "-O2 -ffast-math" } */
13 
14 #include "builtins-config.h"
15 
16 extern double floor(double);
17 extern double ceil(double);
18 extern double trunc(double);
19 
20 extern float floorf(float);
21 extern float ceilf(float);
22 extern float truncf(float);
23 
24 extern long double floorl(long double);
25 extern long double ceill(long double);
26 extern long double truncl(long double);
27 
28 
test1(double x)29 long int test1(double x)
30 {
31   return floor(x);
32 }
33 
test2(double x)34 long long int test2(double x)
35 {
36   return floor(x);
37 }
38 
test3(double x)39 long int test3(double x)
40 {
41   return ceil(x);
42 }
43 
test4(double x)44 long long int test4(double x)
45 {
46   return ceil(x);
47 }
48 
test5(double x)49 long int test5(double x)
50 {
51   return trunc(x);
52 }
53 
test6(double x)54 long long int test6(double x)
55 {
56   return trunc(x);
57 }
58 
59 #ifdef HAVE_C99_RUNTIME
test1f(float x)60 long int test1f(float x)
61 {
62   return floorf(x);
63 }
64 
test2f(float x)65 long long int test2f(float x)
66 {
67   return floorf(x);
68 }
69 
test3f(float x)70 long int test3f(float x)
71 {
72   return ceilf(x);
73 }
74 
test4f(float x)75 long long int test4f(float x)
76 {
77   return ceilf(x);
78 }
79 #endif
80 
test5f(float x)81 long int test5f(float x)
82 {
83   return truncf(x);
84 }
85 
test6f(float x)86 long long int test6f(float x)
87 {
88   return truncf(x);
89 }
90 
91 #ifdef HAVE_C99_RUNTIME
test1l(long double x)92 long int test1l(long double x)
93 {
94   return floorl(x);
95 }
96 
test2l(long double x)97 long long int test2l(long double x)
98 {
99   return floorl(x);
100 }
101 
test3l(long double x)102 long int test3l(long double x)
103 {
104   return ceill(x);
105 }
106 
test4l(long double x)107 long long int test4l(long double x)
108 {
109   return ceill(x);
110 }
111 #endif
112 
test5l(long double x)113 long int test5l(long double x)
114 {
115   return truncl(x);
116 }
117 
test6l(long double x)118 long long int test6l(long double x)
119 {
120   return truncl(x);
121 }
122