aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/builtins-34.c
blob: e348a1ca9438148f9cdedcb420c89b05dfbdb187 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/* Copyright (C) 2004 Free Software Foundation.

   Check that various built-in functions compile.

   Written by Uros Bizjak, 13th February 2004.  */

/* { dg-do compile } */
/* { dg-options "-O2 -ffast-math" } */

extern double exp10(double);
extern double exp2(double);
extern double pow10(double);
extern double expm1(double);
extern double ldexp(double, int);
extern double scalb(double, double);
extern double scalbn(double, int);
extern double scalbln(double, long);
extern double significand(double);
extern float exp10f(float);
extern float exp2f(float);
extern float pow10f(float);
extern float expm1f(float);
extern float ldexpf(float, int);
extern float scalbf(float, float);
extern float scalbnf(float, int);
extern float scalblnf(float, long);
extern float significandf(float);
extern long double exp10l(long double);
extern long double exp2l(long double);
extern long double pow10l(long double);
extern long double expm1l(long double);
extern long double ldexpl(long double, int);
extern long double scalbl(long double, long double);
extern long double scalbnl(long double, int);
extern long double scalblnl(long double, long);
extern long double significandl(long double);


double test1(double x)
{
  return exp10(x);
}

double test2(double x)
{
  return exp2(x);
}

double test3(double x)
{
  return pow10(x);
}

double test4(double x)
{
  return expm1(x);
}

double test5(double x, int exp)
{
  return ldexp(x, exp);
}

double test6(double x, double exp)
{
  return scalb(x, exp);
}

double test7(double x, int exp)
{
  return scalbn(x, exp);
}

double test8(double x, long exp)
{
  return scalbln(x, exp);
}

double test9(double x)
{
  return significand(x);
}

float test1f(float x)
{
  return exp10f(x);
}

float test2f(float x)
{
  return exp2f(x);
}

float test3f(float x)
{
  return pow10f(x);
}

float test4f(float x)
{
  return expm1f(x);
}

float test5f(float x, int exp)
{
  return ldexpf(x, exp);
}

float test6f(float x, float exp)
{
  return scalbf(x, exp);
}

float test7f(float x, int exp)
{
  return scalbnf(x, exp);
}

float test8f(float x, long exp)
{
  return scalblnf(x, exp);
}

float test9f(float x)
{
  return significandf(x);
}

long double test1l(long double x)
{
  return exp10l(x);
}

long double test2l(long double x)
{
  return exp2l(x);
}

long double test3l(long double x)
{
  return pow10l(x);
}

long double test4l(long double x)
{
  return expm1l(x);
}

long double test5l(long double x, int exp)
{
  return ldexpl(x, exp);
}

long double test6l(long double x, long double exp)
{
  return scalbl(x, exp);
}

long double test7l(long double x, int exp)
{
  return scalbnl(x, exp);
}

long double test8l(long double x, long exp)
{
  return scalblnl(x, exp);
}

long double test9l(long double x)
{
  return significandl(x);
}