1
2 #include <stdio.h>
3 #include <assert.h>
4
5 typedef signed long long int Long;
6 typedef unsigned long long int ULong;
7
8 typedef signed int Int;
9 typedef unsigned int UInt;
10
11 typedef union { double d64; float f32[2]; unsigned long long int i64; } U;
12
13 //////////////////// D from X ////////////////////
14
do_scvtf_d_x_imm1(Long x)15 __attribute__((noinline)) double do_scvtf_d_x_imm1 ( Long x )
16 {
17 U block[2]; block[0].i64 = x; block[1].i64 = 0;
18 __asm__ __volatile__(
19 "ldr x13,[%0,#0]; scvtf d18,x13,#1; str d18, [%0,#8]"
20 ::"r"(&block[0]) : "memory", "x13","q18");
21 return block[1].d64;
22 }
do_scvtf_d_x_imm32(Long x)23 __attribute__((noinline)) double do_scvtf_d_x_imm32 ( Long x )
24 {
25 U block[2]; block[0].i64 = x; block[1].i64 = 0;
26 __asm__ __volatile__(
27 "ldr x13,[%0,#0]; scvtf d18,x13,#32; str d18, [%0,#8]"
28 ::"r"(&block[0]) : "memory", "x13","q18");
29 return block[1].d64;
30 }
do_scvtf_d_x_imm64(Long x)31 __attribute__((noinline)) double do_scvtf_d_x_imm64 ( Long x )
32 {
33 U block[2]; block[0].i64 = x; block[1].i64 = 0;
34 __asm__ __volatile__(
35 "ldr x13,[%0,#0]; scvtf d18,x13,#64; str d18, [%0,#8]"
36 ::"r"(&block[0]) : "memory", "x13","q18");
37 return block[1].d64;
38 }
39
do_ucvtf_d_x_imm1(Long x)40 __attribute__((noinline)) double do_ucvtf_d_x_imm1 ( Long x )
41 {
42 U block[2]; block[0].i64 = x; block[1].i64 = 0;
43 __asm__ __volatile__(
44 "ldr x13,[%0,#0]; ucvtf d18,x13,#1; str d18, [%0,#8]"
45 ::"r"(&block[0]) : "memory", "x13","q18");
46 return block[1].d64;
47 }
do_ucvtf_d_x_imm32(Long x)48 __attribute__((noinline)) double do_ucvtf_d_x_imm32 ( Long x )
49 {
50 U block[2]; block[0].i64 = x; block[1].i64 = 0;
51 __asm__ __volatile__(
52 "ldr x13,[%0,#0]; ucvtf d18,x13,#32; str d18, [%0,#8]"
53 ::"r"(&block[0]) : "memory", "x13","q18");
54 return block[1].d64;
55 }
do_ucvtf_d_x_imm64(Long x)56 __attribute__((noinline)) double do_ucvtf_d_x_imm64 ( Long x )
57 {
58 U block[2]; block[0].i64 = x; block[1].i64 = 0;
59 __asm__ __volatile__(
60 "ldr x13,[%0,#0]; ucvtf d18,x13,#64; str d18, [%0,#8]"
61 ::"r"(&block[0]) : "memory", "x13","q18");
62 return block[1].d64;
63 }
64
65
66 //////////////////// D from W ////////////////////
67
do_scvtf_d_w_imm1(Int x)68 __attribute__((noinline)) double do_scvtf_d_w_imm1 ( Int x )
69 {
70 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
71 __asm__ __volatile__(
72 "ldr x13,[%0,#0]; scvtf d18,w13,#1; str d18, [%0,#8]"
73 ::"r"(&block[0]) : "memory", "x13","q18");
74 return block[1].d64;
75 }
do_scvtf_d_w_imm16(Int x)76 __attribute__((noinline)) double do_scvtf_d_w_imm16 ( Int x )
77 {
78 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
79 __asm__ __volatile__(
80 "ldr x13,[%0,#0]; scvtf d18,w13,#16; str d18, [%0,#8]"
81 ::"r"(&block[0]) : "memory", "x13","q18");
82 return block[1].d64;
83 }
do_scvtf_d_w_imm32(Int x)84 __attribute__((noinline)) double do_scvtf_d_w_imm32 ( Int x )
85 {
86 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
87 __asm__ __volatile__(
88 "ldr x13,[%0,#0]; scvtf d18,w13,#32; str d18, [%0,#8]"
89 ::"r"(&block[0]) : "memory", "x13","q18");
90 return block[1].d64;
91 }
92
do_ucvtf_d_w_imm1(Int x)93 __attribute__((noinline)) double do_ucvtf_d_w_imm1 ( Int x )
94 {
95 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
96 __asm__ __volatile__(
97 "ldr x13,[%0,#0]; ucvtf d18,w13,#1; str d18, [%0,#8]"
98 ::"r"(&block[0]) : "memory", "x13","q18");
99 return block[1].d64;
100 }
do_ucvtf_d_w_imm16(Int x)101 __attribute__((noinline)) double do_ucvtf_d_w_imm16 ( Int x )
102 {
103 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
104 __asm__ __volatile__(
105 "ldr x13,[%0,#0]; ucvtf d18,w13,#16; str d18, [%0,#8]"
106 ::"r"(&block[0]) : "memory", "x13","q18");
107 return block[1].d64;
108 }
do_ucvtf_d_w_imm32(Int x)109 __attribute__((noinline)) double do_ucvtf_d_w_imm32 ( Int x )
110 {
111 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
112 __asm__ __volatile__(
113 "ldr x13,[%0,#0]; ucvtf d18,w13,#32; str d18, [%0,#8]"
114 ::"r"(&block[0]) : "memory", "x13","q18");
115 return block[1].d64;
116 }
117
118
119 //////////////////// S from X ////////////////////
120
do_scvtf_s_x_imm1(Long x)121 __attribute__((noinline)) double do_scvtf_s_x_imm1 ( Long x )
122 {
123 U block[2]; block[0].i64 = x; block[1].i64 = 0;
124 __asm__ __volatile__(
125 "ldr x13,[%0,#0]; scvtf s18,x13,#1; str s18, [%0,#8]"
126 ::"r"(&block[0]) : "memory", "x13","q18");
127 return (double)block[1].f32[0];
128 }
do_scvtf_s_x_imm32(Long x)129 __attribute__((noinline)) double do_scvtf_s_x_imm32 ( Long x )
130 {
131 U block[2]; block[0].i64 = x; block[1].i64 = 0;
132 __asm__ __volatile__(
133 "ldr x13,[%0,#0]; scvtf s18,x13,#32; str s18, [%0,#8]"
134 ::"r"(&block[0]) : "memory", "x13","q18");
135 return (double)block[1].f32[0];
136 }
do_scvtf_s_x_imm64(Long x)137 __attribute__((noinline)) double do_scvtf_s_x_imm64 ( Long x )
138 {
139 U block[2]; block[0].i64 = x; block[1].i64 = 0;
140 __asm__ __volatile__(
141 "ldr x13,[%0,#0]; scvtf s18,x13,#64; str s18, [%0,#8]"
142 ::"r"(&block[0]) : "memory", "x13","q18");
143 return (double)block[1].f32[0];
144 }
145
do_ucvtf_s_x_imm1(Long x)146 __attribute__((noinline)) double do_ucvtf_s_x_imm1 ( Long x )
147 {
148 U block[2]; block[0].i64 = x; block[1].i64 = 0;
149 __asm__ __volatile__(
150 "ldr x13,[%0,#0]; ucvtf s18,x13,#1; str s18, [%0,#8]"
151 ::"r"(&block[0]) : "memory", "x13","q18");
152 return (double)block[1].f32[0];
153 }
do_ucvtf_s_x_imm32(Long x)154 __attribute__((noinline)) double do_ucvtf_s_x_imm32 ( Long x )
155 {
156 U block[2]; block[0].i64 = x; block[1].i64 = 0;
157 __asm__ __volatile__(
158 "ldr x13,[%0,#0]; ucvtf s18,x13,#32; str s18, [%0,#8]"
159 ::"r"(&block[0]) : "memory", "x13","q18");
160 return (double)block[1].f32[0];
161 }
do_ucvtf_s_x_imm64(Long x)162 __attribute__((noinline)) double do_ucvtf_s_x_imm64 ( Long x )
163 {
164 U block[2]; block[0].i64 = x; block[1].i64 = 0;
165 __asm__ __volatile__(
166 "ldr x13,[%0,#0]; ucvtf s18,x13,#64; str s18, [%0,#8]"
167 ::"r"(&block[0]) : "memory", "x13","q18");
168 return (double)block[1].f32[0];
169 }
170
171
172 //////////////////// S from W ////////////////////
173
do_scvtf_s_w_imm1(Int x)174 __attribute__((noinline)) double do_scvtf_s_w_imm1 ( Int x )
175 {
176 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
177 __asm__ __volatile__(
178 "ldr x13,[%0,#0]; scvtf s18,w13,#1; str s18, [%0,#8]"
179 ::"r"(&block[0]) : "memory", "x13","q18");
180 return (double)block[1].f32[0];
181 }
do_scvtf_s_w_imm16(Int x)182 __attribute__((noinline)) double do_scvtf_s_w_imm16 ( Int x )
183 {
184 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
185 __asm__ __volatile__(
186 "ldr x13,[%0,#0]; scvtf s18,w13,#16; str s18, [%0,#8]"
187 ::"r"(&block[0]) : "memory", "x13","q18");
188 return (double)block[1].f32[0];
189 }
do_scvtf_s_w_imm32(Int x)190 __attribute__((noinline)) double do_scvtf_s_w_imm32 ( Int x )
191 {
192 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
193 __asm__ __volatile__(
194 "ldr x13,[%0,#0]; scvtf s18,w13,#32; str s18, [%0,#8]"
195 ::"r"(&block[0]) : "memory", "x13","q18");
196 return (double)block[1].f32[0];
197 }
198
do_ucvtf_s_w_imm1(Int x)199 __attribute__((noinline)) double do_ucvtf_s_w_imm1 ( Int x )
200 {
201 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
202 __asm__ __volatile__(
203 "ldr x13,[%0,#0]; ucvtf s18,w13,#1; str s18, [%0,#8]"
204 ::"r"(&block[0]) : "memory", "x13","q18");
205 return (double)block[1].f32[0];
206 }
do_ucvtf_s_w_imm16(Int x)207 __attribute__((noinline)) double do_ucvtf_s_w_imm16 ( Int x )
208 {
209 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
210 __asm__ __volatile__(
211 "ldr x13,[%0,#0]; ucvtf s18,w13,#16; str s18, [%0,#8]"
212 ::"r"(&block[0]) : "memory", "x13","q18");
213 return (double)block[1].f32[0];
214 }
do_ucvtf_s_w_imm32(Int x)215 __attribute__((noinline)) double do_ucvtf_s_w_imm32 ( Int x )
216 {
217 U block[2]; block[0].i64 = (Long)x; block[1].i64 = 0;
218 __asm__ __volatile__(
219 "ldr x13,[%0,#0]; ucvtf s18,w13,#32; str s18, [%0,#8]"
220 ::"r"(&block[0]) : "memory", "x13","q18");
221 return (double)block[1].f32[0];
222 }
223
224
225
226
227
main(void)228 int main ( void )
229 {
230 assert(sizeof(U) == 8);
231
232 //////////////////// D from X ////////////////////
233 #if 1
234 printf("\nscvtf_d_x_imm1\n");
235 printf("%18.12e\n", do_scvtf_d_x_imm1(0xFFFFFFFFFFFFFFFFUL));
236 printf("%18.12e\n", do_scvtf_d_x_imm1(0));
237 printf("%18.12e\n", do_scvtf_d_x_imm1(0x7FFFFFFFFFFFFFFFUL));
238 printf("%18.12e\n", do_scvtf_d_x_imm1(1234));
239 printf("%18.12e\n", do_scvtf_d_x_imm1(-1234));
240 printf("%18.12e\n", do_scvtf_d_x_imm1(0x8000000000000000UL));
241
242 printf("\nscvtf_d_x_imm32\n");
243 printf("%18.12e\n", do_scvtf_d_x_imm32(0xFFFFFFFFFFFFFFFFUL));
244 printf("%18.12e\n", do_scvtf_d_x_imm32(0));
245 printf("%18.12e\n", do_scvtf_d_x_imm32(0x7FFFFFFFFFFFFFFFUL));
246 printf("%18.12e\n", do_scvtf_d_x_imm32(1234));
247 printf("%18.12e\n", do_scvtf_d_x_imm32(-1234));
248 printf("%18.12e\n", do_scvtf_d_x_imm32(0x8000000000000000UL));
249
250 printf("\nscvtf_d_x_imm64\n");
251 printf("%18.12e\n", do_scvtf_d_x_imm64(0xFFFFFFFFFFFFFFFFUL));
252 printf("%18.12e\n", do_scvtf_d_x_imm64(0));
253 printf("%18.12e\n", do_scvtf_d_x_imm64(0x7FFFFFFFFFFFFFFFUL));
254 printf("%18.12e\n", do_scvtf_d_x_imm64(1234));
255 printf("%18.12e\n", do_scvtf_d_x_imm64(-1234));
256 printf("%18.12e\n", do_scvtf_d_x_imm64(0x8000000000000000UL));
257
258 printf("\nucvtf_d_x_imm1\n");
259 printf("%18.12e\n", do_ucvtf_d_x_imm1(0xFFFFFFFFFFFFFFFFUL));
260 printf("%18.12e\n", do_ucvtf_d_x_imm1(0));
261 printf("%18.12e\n", do_ucvtf_d_x_imm1(0x7FFFFFFFFFFFFFFFUL));
262 printf("%18.12e\n", do_ucvtf_d_x_imm1(1234));
263 printf("%18.12e\n", do_ucvtf_d_x_imm1(-1234));
264 printf("%18.12e\n", do_ucvtf_d_x_imm1(0x8000000000000000UL));
265
266 printf("\nucvtf_d_x_imm32\n");
267 printf("%18.12e\n", do_ucvtf_d_x_imm32(0xFFFFFFFFFFFFFFFFUL));
268 printf("%18.12e\n", do_ucvtf_d_x_imm32(0));
269 printf("%18.12e\n", do_ucvtf_d_x_imm32(0x7FFFFFFFFFFFFFFFUL));
270 printf("%18.12e\n", do_ucvtf_d_x_imm32(1234));
271 printf("%18.12e\n", do_ucvtf_d_x_imm32(-1234));
272 printf("%18.12e\n", do_ucvtf_d_x_imm32(0x8000000000000000UL));
273
274 printf("\nucvtf_d_x_imm64\n");
275 printf("%18.12e\n", do_ucvtf_d_x_imm64(0xFFFFFFFFFFFFFFFFUL));
276 printf("%18.12e\n", do_ucvtf_d_x_imm64(0));
277 printf("%18.12e\n", do_ucvtf_d_x_imm64(0x7FFFFFFFFFFFFFFFUL));
278 printf("%18.12e\n", do_ucvtf_d_x_imm64(1234));
279 printf("%18.12e\n", do_ucvtf_d_x_imm64(-1234));
280 printf("%18.12e\n", do_ucvtf_d_x_imm64(0x8000000000000000UL));
281
282 //////////////////// D from W ////////////////////
283
284 printf("\nscvtf_d_w_imm1\n");
285 printf("%18.12e\n", do_scvtf_d_w_imm1(0xFFFFFFFF));
286 printf("%18.12e\n", do_scvtf_d_w_imm1(0));
287 printf("%18.12e\n", do_scvtf_d_w_imm1(0x7FFFFFFF));
288 printf("%18.12e\n", do_scvtf_d_w_imm1(1234));
289 printf("%18.12e\n", do_scvtf_d_w_imm1(-1234));
290 printf("%18.12e\n", do_scvtf_d_w_imm1(0x80000000));
291
292 printf("\nscvtf_d_w_imm16\n");
293 printf("%18.12e\n", do_scvtf_d_w_imm16(0xFFFFFFFF));
294 printf("%18.12e\n", do_scvtf_d_w_imm16(0));
295 printf("%18.12e\n", do_scvtf_d_w_imm16(0x7FFFFFFF));
296 printf("%18.12e\n", do_scvtf_d_w_imm16(1234));
297 printf("%18.12e\n", do_scvtf_d_w_imm16(-1234));
298 printf("%18.12e\n", do_scvtf_d_w_imm16(0x80000000));
299
300 printf("\nscvtf_d_w_imm32\n");
301 printf("%18.12e\n", do_scvtf_d_w_imm32(0xFFFFFFFF));
302 printf("%18.12e\n", do_scvtf_d_w_imm32(0));
303 printf("%18.12e\n", do_scvtf_d_w_imm32(0x7FFFFFFF));
304 printf("%18.12e\n", do_scvtf_d_w_imm32(1234));
305 printf("%18.12e\n", do_scvtf_d_w_imm32(-1234));
306 printf("%18.12e\n", do_scvtf_d_w_imm32(0x80000000));
307
308 printf("\nucvtf_d_w_imm1\n");
309 printf("%18.12e\n", do_ucvtf_d_w_imm1(0xFFFFFFFF));
310 printf("%18.12e\n", do_ucvtf_d_w_imm1(0));
311 printf("%18.12e\n", do_ucvtf_d_w_imm1(0x7FFFFFFF));
312 printf("%18.12e\n", do_ucvtf_d_w_imm1(1234));
313 printf("%18.12e\n", do_ucvtf_d_w_imm1(-1234));
314 printf("%18.12e\n", do_ucvtf_d_w_imm1(0x80000000));
315
316 printf("\nucvtf_d_w_imm16\n");
317 printf("%18.12e\n", do_ucvtf_d_w_imm16(0xFFFFFFFF));
318 printf("%18.12e\n", do_ucvtf_d_w_imm16(0));
319 printf("%18.12e\n", do_ucvtf_d_w_imm16(0x7FFFFFFF));
320 printf("%18.12e\n", do_ucvtf_d_w_imm16(1234));
321 printf("%18.12e\n", do_ucvtf_d_w_imm16(-1234));
322 printf("%18.12e\n", do_ucvtf_d_w_imm16(0x80000000));
323
324 printf("\nucvtf_d_w_imm32\n");
325 printf("%18.12e\n", do_ucvtf_d_w_imm32(0xFFFFFFFF));
326 printf("%18.12e\n", do_ucvtf_d_w_imm32(0));
327 printf("%18.12e\n", do_ucvtf_d_w_imm32(0x7FFFFFFF));
328 printf("%18.12e\n", do_ucvtf_d_w_imm32(1234));
329 printf("%18.12e\n", do_ucvtf_d_w_imm32(-1234));
330 printf("%18.12e\n", do_ucvtf_d_w_imm32(0x80000000));
331
332 //////////////////// S from X ////////////////////
333
334 printf("\nscvtf_s_x_imm1\n");
335 printf("%18.12e\n", do_scvtf_s_x_imm1(0xFFFFFFFFFFFFFFFFUL));
336 printf("%18.12e\n", do_scvtf_s_x_imm1(0));
337 printf("%18.12e\n", do_scvtf_s_x_imm1(0x7FFFFFFFFFFFFFFFUL));
338 printf("%18.12e\n", do_scvtf_s_x_imm1(1234));
339 printf("%18.12e\n", do_scvtf_s_x_imm1(-1234));
340 printf("%18.12e\n", do_scvtf_s_x_imm1(0x8000000000000000UL));
341
342 printf("\nscvtf_s_x_imm32\n");
343 printf("%18.12e\n", do_scvtf_s_x_imm32(0xFFFFFFFFFFFFFFFFUL));
344 printf("%18.12e\n", do_scvtf_s_x_imm32(0));
345 printf("%18.12e\n", do_scvtf_s_x_imm32(0x7FFFFFFFFFFFFFFFUL));
346 printf("%18.12e\n", do_scvtf_s_x_imm32(1234));
347 printf("%18.12e\n", do_scvtf_s_x_imm32(-1234));
348 printf("%18.12e\n", do_scvtf_s_x_imm32(0x8000000000000000UL));
349
350 printf("\nscvtf_s_x_imm64\n");
351 printf("%18.12e\n", do_scvtf_s_x_imm64(0xFFFFFFFFFFFFFFFFUL));
352 printf("%18.12e\n", do_scvtf_s_x_imm64(0));
353 printf("%18.12e\n", do_scvtf_s_x_imm64(0x7FFFFFFFFFFFFFFFUL));
354 printf("%18.12e\n", do_scvtf_s_x_imm64(1234));
355 printf("%18.12e\n", do_scvtf_s_x_imm64(-1234));
356 printf("%18.12e\n", do_scvtf_s_x_imm64(0x8000000000000000UL));
357
358 printf("\nucvtf_s_x_imm1\n");
359 printf("%18.12e\n", do_ucvtf_s_x_imm1(0xFFFFFFFFFFFFFFFFUL));
360 printf("%18.12e\n", do_ucvtf_s_x_imm1(0));
361 printf("%18.12e\n", do_ucvtf_s_x_imm1(0x7FFFFFFFFFFFFFFFUL));
362 printf("%18.12e\n", do_ucvtf_s_x_imm1(1234));
363 printf("%18.12e\n", do_ucvtf_s_x_imm1(-1234));
364 printf("%18.12e\n", do_ucvtf_s_x_imm1(0x8000000000000000UL));
365
366 printf("\nucvtf_s_x_imm32\n");
367 printf("%18.12e\n", do_ucvtf_s_x_imm32(0xFFFFFFFFFFFFFFFFUL));
368 printf("%18.12e\n", do_ucvtf_s_x_imm32(0));
369 printf("%18.12e\n", do_ucvtf_s_x_imm32(0x7FFFFFFFFFFFFFFFUL));
370 printf("%18.12e\n", do_ucvtf_s_x_imm32(1234));
371 printf("%18.12e\n", do_ucvtf_s_x_imm32(-1234));
372 printf("%18.12e\n", do_ucvtf_s_x_imm32(0x8000000000000000UL));
373
374 printf("\nucvtf_s_x_imm64\n");
375 printf("%18.12e\n", do_ucvtf_s_x_imm64(0xFFFFFFFFFFFFFFFFUL));
376 printf("%18.12e\n", do_ucvtf_s_x_imm64(0));
377 printf("%18.12e\n", do_ucvtf_s_x_imm64(0x7FFFFFFFFFFFFFFFUL));
378 printf("%18.12e\n", do_ucvtf_s_x_imm64(1234));
379 printf("%18.12e\n", do_ucvtf_s_x_imm64(-1234));
380 printf("%18.12e\n", do_ucvtf_s_x_imm64(0x8000000000000000UL));
381
382 //////////////////// S from W ////////////////////
383
384 printf("\nscvtf_s_w_imm1\n");
385 printf("%18.12e\n", do_scvtf_s_w_imm1(0xFFFFFFFF));
386 printf("%18.12e\n", do_scvtf_s_w_imm1(0));
387 printf("%18.12e\n", do_scvtf_s_w_imm1(0x7FFFFFFF));
388 printf("%18.12e\n", do_scvtf_s_w_imm1(1234));
389 printf("%18.12e\n", do_scvtf_s_w_imm1(-1234));
390 printf("%18.12e\n", do_scvtf_s_w_imm1(0x80000000));
391
392 printf("\nscvtf_s_w_imm16\n");
393 printf("%18.12e\n", do_scvtf_s_w_imm16(0xFFFFFFFF));
394 printf("%18.12e\n", do_scvtf_s_w_imm16(0));
395 printf("%18.12e\n", do_scvtf_s_w_imm16(0x7FFFFFFF));
396 printf("%18.12e\n", do_scvtf_s_w_imm16(1234));
397 printf("%18.12e\n", do_scvtf_s_w_imm16(-1234));
398 printf("%18.12e\n", do_scvtf_s_w_imm16(0x80000000));
399
400 printf("\nscvtf_s_w_imm32\n");
401 printf("%18.12e\n", do_scvtf_s_w_imm32(0xFFFFFFFF));
402 printf("%18.12e\n", do_scvtf_s_w_imm32(0));
403 printf("%18.12e\n", do_scvtf_s_w_imm32(0x7FFFFFFF));
404 printf("%18.12e\n", do_scvtf_s_w_imm32(1234));
405 printf("%18.12e\n", do_scvtf_s_w_imm32(-1234));
406 printf("%18.12e\n", do_scvtf_s_w_imm32(0x80000000));
407
408 printf("\nucvtf_s_w_imm1\n");
409 printf("%18.12e\n", do_ucvtf_s_w_imm1(0xFFFFFFFF));
410 printf("%18.12e\n", do_ucvtf_s_w_imm1(0));
411 printf("%18.12e\n", do_ucvtf_s_w_imm1(0x7FFFFFFF));
412 printf("%18.12e\n", do_ucvtf_s_w_imm1(1234));
413 printf("%18.12e\n", do_ucvtf_s_w_imm1(-1234));
414 printf("%18.12e\n", do_ucvtf_s_w_imm1(0x80000000));
415
416 printf("\nucvtf_s_w_imm16\n");
417 printf("%18.12e\n", do_ucvtf_s_w_imm16(0xFFFFFFFF));
418 printf("%18.12e\n", do_ucvtf_s_w_imm16(0));
419 printf("%18.12e\n", do_ucvtf_s_w_imm16(0x7FFFFFFF));
420 printf("%18.12e\n", do_ucvtf_s_w_imm16(1234));
421 printf("%18.12e\n", do_ucvtf_s_w_imm16(-1234));
422 printf("%18.12e\n", do_ucvtf_s_w_imm16(0x80000000));
423
424 printf("\nucvtf_s_w_imm32\n");
425 printf("%18.12e\n", do_ucvtf_s_w_imm32(0xFFFFFFFF));
426 printf("%18.12e\n", do_ucvtf_s_w_imm32(0));
427 printf("%18.12e\n", do_ucvtf_s_w_imm32(0x7FFFFFFF));
428 printf("%18.12e\n", do_ucvtf_s_w_imm32(1234));
429 printf("%18.12e\n", do_ucvtf_s_w_imm32(-1234));
430 #endif
431 printf("%18.12e\n", do_ucvtf_s_w_imm32(0x80000000));
432
433
434
435
436 #if 0
437 int i;
438 double d = -4.90;
439 for (i = 0; i < 100; i++) {
440 printf("frintx_d(%f) = %f\n", d, do_frintx_d(d));
441 d += 0.1 * (1.0 - 1.0 / 30.0);
442 }
443
444 float f = -4.90;
445 for (i = 0; i < 100; i++) {
446 printf("frintx_s(%f) = %f\n", f, do_frintx_s(f));
447 f += 0.1 * (1.0 - 1.0 / 30.0);
448 }
449 #endif
450
451 return 0;
452 }
453