1 /*
2  *  GXemul floating point tests.
3  *
4  *  This file is in the Public Domain.
5  */
6 
7 // Regenerate fpconst.h like this:
8 // grep void\) fpconst.c | while read a; do echo $a";"; done > fpconst.h
9 
10 #include "fpconst.h"
11 
12 
f_0_0(void)13 float f_0_0(void)
14 {
15 	return 0.0;
16 }
17 
d_0_0(void)18 double d_0_0(void)
19 {
20 	return 0.0;
21 }
22 
23 
f_m0_0(void)24 float f_m0_0(void)
25 {
26 	return -0.0;
27 }
28 
d_m0_0(void)29 double d_m0_0(void)
30 {
31 	return -0.0;
32 }
33 
34 
f_0_17(void)35 float f_0_17(void)
36 {
37 	return 0.17;
38 }
39 
d_0_17(void)40 double d_0_17(void)
41 {
42 	return 0.17;
43 }
44 
45 
f_m0_17(void)46 float f_m0_17(void)
47 {
48 	return -0.17;
49 }
50 
d_m0_17(void)51 double d_m0_17(void)
52 {
53 	return -0.17;
54 }
55 
56 
f_1_0(void)57 float f_1_0(void)
58 {
59 	return 1.0;
60 }
61 
d_1_0(void)62 double d_1_0(void)
63 {
64 	return 1.0;
65 }
66 
67 
f_m1_0(void)68 float f_m1_0(void)
69 {
70 	return -1.0;
71 }
72 
d_m1_0(void)73 double d_m1_0(void)
74 {
75 	return -1.0;
76 }
77 
78 
f_1_7(void)79 float f_1_7(void)
80 {
81 	return 1.7;
82 }
83 
d_1_7(void)84 double d_1_7(void)
85 {
86 	return 1.7;
87 }
88 
89 
f_m1_7(void)90 float f_m1_7(void)
91 {
92 	return -1.7;
93 }
94 
d_m1_7(void)95 double d_m1_7(void)
96 {
97 	return -1.7;
98 }
99 
100 
f_42(void)101 float f_42(void)
102 {
103 	return 42;
104 }
105 
d_42(void)106 double d_42(void)
107 {
108 	return 42;
109 }
110 
111 
f_m42(void)112 float f_m42(void)
113 {
114 	return -42;
115 }
116 
d_m42(void)117 double d_m42(void)
118 {
119 	return -42;
120 }
121 
122 
f_nan(void)123 float f_nan(void)
124 {
125 	unsigned int v = 0x7fffffff;
126 	void *p = &v;
127 	float *pf = (float*) p;
128 	return *pf;
129 }
130 
d_nan(void)131 double d_nan(void)
132 {
133 	unsigned long long v = 0x7fffffffffffffffULL;
134 	void *p = &v;
135 	double *pd = (double*) p;
136 	return *pd;
137 }
138 
139 
f_nan_x(void)140 float f_nan_x(void)
141 {
142 	unsigned int v = 0x7fc01234;
143 	void *p = &v;
144 	float *pf = (float*) p;
145 	return *pf;
146 }
147 
d_nan_x(void)148 double d_nan_x(void)
149 {
150 	unsigned long long v = 0x7ff8000000001234ULL;
151 	void *p = &v;
152 	double *pd = (double*) p;
153 	return *pd;
154 }
155 
156 
f_inf(void)157 float f_inf(void)
158 {
159 	unsigned int v = 0x7f800000;
160 	void *p = &v;
161 	float *pf = (float*) p;
162 	return *pf;
163 }
164 
d_inf(void)165 double d_inf(void)
166 {
167 	unsigned long long v = 0x7ff0000000000000ULL;
168 	void *p = &v;
169 	double *pd = (double*) p;
170 	return *pd;
171 }
172 
173 
f_m_inf(void)174 float f_m_inf(void)
175 {
176 	unsigned int v = 0xff800000;
177 	void *p = &v;
178 	float *pf = (float*) p;
179 	return *pf;
180 }
181 
d_m_inf(void)182 double d_m_inf(void)
183 {
184 	unsigned long long v = 0xfff0000000000000ULL;
185 	void *p = &v;
186 	double *pd = (double*) p;
187 	return *pd;
188 }
189 
190