1 /* Copyright (C) 2004 Free Software Foundation.
2 
3    Check that various built-in functions compile.
4 
5    Written by Uros Bizjak, 13th February 2004.  */
6 
7 /* { dg-do compile } */
8 /* { dg-options "-O2 -ffast-math" } */
9 
10 extern double exp10(double);
11 extern double exp2(double);
12 extern double pow10(double);
13 extern double expm1(double);
14 extern double ldexp(double, int);
15 extern double scalb(double, double);
16 extern double scalbn(double, int);
17 extern double scalbln(double, long);
18 extern double significand(double);
19 extern float exp10f(float);
20 extern float exp2f(float);
21 extern float pow10f(float);
22 extern float expm1f(float);
23 extern float ldexpf(float, int);
24 extern float scalbf(float, float);
25 extern float scalbnf(float, int);
26 extern float scalblnf(float, long);
27 extern float significandf(float);
28 extern long double exp10l(long double);
29 extern long double exp2l(long double);
30 extern long double pow10l(long double);
31 extern long double expm1l(long double);
32 extern long double ldexpl(long double, int);
33 extern long double scalbl(long double, long double);
34 extern long double scalbnl(long double, int);
35 extern long double scalblnl(long double, long);
36 extern long double significandl(long double);
37 
38 
test1(double x)39 double test1(double x)
40 {
41   return exp10(x);
42 }
43 
test2(double x)44 double test2(double x)
45 {
46   return exp2(x);
47 }
48 
test3(double x)49 double test3(double x)
50 {
51   return pow10(x);
52 }
53 
test4(double x)54 double test4(double x)
55 {
56   return expm1(x);
57 }
58 
test5(double x,int exp)59 double test5(double x, int exp)
60 {
61   return ldexp(x, exp);
62 }
63 
test6(double x,double exp)64 double test6(double x, double exp)
65 {
66   return scalb(x, exp);
67 }
68 
test7(double x,int exp)69 double test7(double x, int exp)
70 {
71   return scalbn(x, exp);
72 }
73 
test8(double x,long exp)74 double test8(double x, long exp)
75 {
76   return scalbln(x, exp);
77 }
78 
test9(double x)79 double test9(double x)
80 {
81   return significand(x);
82 }
83 
test1f(float x)84 float test1f(float x)
85 {
86   return exp10f(x);
87 }
88 
test2f(float x)89 float test2f(float x)
90 {
91   return exp2f(x);
92 }
93 
test3f(float x)94 float test3f(float x)
95 {
96   return pow10f(x);
97 }
98 
test4f(float x)99 float test4f(float x)
100 {
101   return expm1f(x);
102 }
103 
test5f(float x,int exp)104 float test5f(float x, int exp)
105 {
106   return ldexpf(x, exp);
107 }
108 
test6f(float x,float exp)109 float test6f(float x, float exp)
110 {
111   return scalbf(x, exp);
112 }
113 
test7f(float x,int exp)114 float test7f(float x, int exp)
115 {
116   return scalbnf(x, exp);
117 }
118 
test8f(float x,long exp)119 float test8f(float x, long exp)
120 {
121   return scalblnf(x, exp);
122 }
123 
test9f(float x)124 float test9f(float x)
125 {
126   return significandf(x);
127 }
128 
test1l(long double x)129 long double test1l(long double x)
130 {
131   return exp10l(x);
132 }
133 
test2l(long double x)134 long double test2l(long double x)
135 {
136   return exp2l(x);
137 }
138 
test3l(long double x)139 long double test3l(long double x)
140 {
141   return pow10l(x);
142 }
143 
test4l(long double x)144 long double test4l(long double x)
145 {
146   return expm1l(x);
147 }
148 
test5l(long double x,int exp)149 long double test5l(long double x, int exp)
150 {
151   return ldexpl(x, exp);
152 }
153 
test6l(long double x,long double exp)154 long double test6l(long double x, long double exp)
155 {
156   return scalbl(x, exp);
157 }
158 
test7l(long double x,int exp)159 long double test7l(long double x, int exp)
160 {
161   return scalbnl(x, exp);
162 }
163 
test8l(long double x,long exp)164 long double test8l(long double x, long exp)
165 {
166   return scalblnl(x, exp);
167 }
168 
test9l(long double x)169 long double test9l(long double x)
170 {
171   return significandl(x);
172 }
173