1
2#include <stdio.h>
3#include <assert.h>
4
5typedef    signed long long int  Long;
6typedef  unsigned long long int  ULong;
7
8typedef    signed int  Int;
9typedef  unsigned int  UInt;
10
11typedef  union { double d64; float f32[2]; unsigned long long int i64; }  U;
12
13//////////////////// D from X ////////////////////
14
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}
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}
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
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}
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}
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
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}
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}
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
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}
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}
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
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}
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}
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
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}
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}
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
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}
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}
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
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}
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}
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
228int 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
437int i;
438double d = -4.90;
439for (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
444float f = -4.90;
445for (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