|
268 | 268 | (assert_return (invoke "f32.convert_s_i32" (i32.const 2147483647)) (f32.const 2147483648))
|
269 | 269 | (assert_return (invoke "f32.convert_s_i32" (i32.const -2147483648)) (f32.const -2147483648))
|
270 | 270 | (assert_return (invoke "f32.convert_s_i32" (i32.const 1234567890)) (f32.const 0x1.26580cp+30))
|
| 271 | +;; Test rounding directions. |
| 272 | +(assert_return (invoke "f32.convert_s_i32" (i32.const 16777217)) (f32.const 16777216.0)) |
| 273 | +(assert_return (invoke "f32.convert_s_i32" (i32.const -16777217)) (f32.const -16777216.0)) |
| 274 | +(assert_return (invoke "f32.convert_s_i32" (i32.const 16777219)) (f32.const 16777220.0)) |
| 275 | +(assert_return (invoke "f32.convert_s_i32" (i32.const -16777219)) (f32.const -16777220.0)) |
271 | 276 |
|
272 | 277 | (assert_return (invoke "f32.convert_s_i64" (i64.const 1)) (f32.const 1.0))
|
273 | 278 | (assert_return (invoke "f32.convert_s_i64" (i64.const -1)) (f32.const -1.0))
|
274 | 279 | (assert_return (invoke "f32.convert_s_i64" (i64.const 0)) (f32.const 0.0))
|
275 | 280 | (assert_return (invoke "f32.convert_s_i64" (i64.const 9223372036854775807)) (f32.const 9223372036854775807))
|
276 | 281 | (assert_return (invoke "f32.convert_s_i64" (i64.const -9223372036854775808)) (f32.const -9223372036854775808))
|
277 | 282 | (assert_return (invoke "f32.convert_s_i64" (i64.const 314159265358979)) (f32.const 0x1.1db9e8p+48)) ;; PI
|
| 283 | +;; Test rounding directions. |
| 284 | +(assert_return (invoke "f32.convert_s_i64" (i64.const 16777217)) (f32.const 16777216.0)) |
| 285 | +(assert_return (invoke "f32.convert_s_i64" (i64.const -16777217)) (f32.const -16777216.0)) |
| 286 | +(assert_return (invoke "f32.convert_s_i64" (i64.const 16777219)) (f32.const 16777220.0)) |
| 287 | +(assert_return (invoke "f32.convert_s_i64" (i64.const -16777219)) (f32.const -16777220.0)) |
278 | 288 |
|
279 | 289 | (assert_return (invoke "f64.convert_s_i32" (i32.const 1)) (f64.const 1.0))
|
280 | 290 | (assert_return (invoke "f64.convert_s_i32" (i32.const -1)) (f64.const -1.0))
|
|
289 | 299 | (assert_return (invoke "f64.convert_s_i64" (i64.const 9223372036854775807)) (f64.const 9223372036854775807))
|
290 | 300 | (assert_return (invoke "f64.convert_s_i64" (i64.const -9223372036854775808)) (f64.const -9223372036854775808))
|
291 | 301 | (assert_return (invoke "f64.convert_s_i64" (i64.const 4669201609102990)) (f64.const 4669201609102990)) ;; Feigenbaum
|
| 302 | +;; Test rounding directions. |
| 303 | +(assert_return (invoke "f64.convert_s_i64" (i64.const 9007199254740993)) (f64.const 9007199254740992)) |
| 304 | +(assert_return (invoke "f64.convert_s_i64" (i64.const -9007199254740993)) (f64.const -9007199254740992)) |
| 305 | +(assert_return (invoke "f64.convert_s_i64" (i64.const 9007199254740995)) (f64.const 9007199254740996)) |
| 306 | +(assert_return (invoke "f64.convert_s_i64" (i64.const -9007199254740995)) (f64.const -9007199254740996)) |
292 | 307 |
|
293 | 308 | (assert_return (invoke "f32.convert_u_i32" (i32.const 1)) (f32.const 1.0))
|
294 | 309 | (assert_return (invoke "f32.convert_u_i32" (i32.const 0)) (f32.const 0.0))
|
295 | 310 | (assert_return (invoke "f32.convert_u_i32" (i32.const 2147483647)) (f32.const 2147483648))
|
296 | 311 | (assert_return (invoke "f32.convert_u_i32" (i32.const -2147483648)) (f32.const 2147483648))
|
297 | 312 | (assert_return (invoke "f32.convert_u_i32" (i32.const 0x12345678)) (f32.const 0x1.234568p+28))
|
298 | 313 | (assert_return (invoke "f32.convert_u_i32" (i32.const 0xffffffff)) (f32.const 4294967296.0))
|
| 314 | +;; Test rounding directions. |
| 315 | +(assert_return (invoke "f32.convert_u_i32" (i32.const 16777217)) (f32.const 16777216.0)) |
| 316 | +(assert_return (invoke "f32.convert_u_i32" (i32.const 16777219)) (f32.const 16777220.0)) |
299 | 317 |
|
300 | 318 | (assert_return (invoke "f32.convert_u_i64" (i64.const 1)) (f32.const 1.0))
|
301 | 319 | (assert_return (invoke "f32.convert_u_i64" (i64.const 0)) (f32.const 0.0))
|
302 | 320 | (assert_return (invoke "f32.convert_u_i64" (i64.const 9223372036854775807)) (f32.const 9223372036854775807))
|
303 | 321 | (assert_return (invoke "f32.convert_u_i64" (i64.const -9223372036854775808)) (f32.const 9223372036854775808))
|
304 | 322 | (assert_return (invoke "f32.convert_u_i64" (i64.const 0xffffffffffffffff)) (f32.const 18446744073709551616.0))
|
| 323 | +;; Test rounding directions. |
| 324 | +(assert_return (invoke "f32.convert_u_i64" (i64.const 16777217)) (f32.const 16777216.0)) |
| 325 | +(assert_return (invoke "f32.convert_u_i64" (i64.const 16777219)) (f32.const 16777220.0)) |
305 | 326 |
|
306 | 327 | (assert_return (invoke "f64.convert_u_i32" (i32.const 1)) (f64.const 1.0))
|
307 | 328 | (assert_return (invoke "f64.convert_u_i32" (i32.const 0)) (f64.const 0.0))
|
|
314 | 335 | (assert_return (invoke "f64.convert_u_i64" (i64.const 9223372036854775807)) (f64.const 9223372036854775807))
|
315 | 336 | (assert_return (invoke "f64.convert_u_i64" (i64.const -9223372036854775808)) (f64.const 9223372036854775808))
|
316 | 337 | (assert_return (invoke "f64.convert_u_i64" (i64.const 0xffffffffffffffff)) (f64.const 18446744073709551616.0))
|
| 338 | +;; Test rounding directions. |
| 339 | +(assert_return (invoke "f64.convert_u_i64" (i64.const 9007199254740993)) (f64.const 9007199254740992)) |
| 340 | +(assert_return (invoke "f64.convert_u_i64" (i64.const 9007199254740995)) (f64.const 9007199254740996)) |
317 | 341 |
|
318 | 342 | (assert_return (invoke "f64.promote_f32" (f32.const 0.0)) (f64.const 0.0))
|
319 | 343 | (assert_return (invoke "f64.promote_f32" (f32.const -0.0)) (f64.const -0.0))
|
|
0 commit comments