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