|
50 | 50 | (v128.const f32x4 0 -1.0 4294967040.0 4294967296.0)) |
51 | 51 | ;; out of range -> saturate or UINT32_MAX |
52 | 52 | (either (v128.const i32x4 0 0 4294967040 0xffffffff) |
53 | | - (v128.const i32x4 0 0xffffffff 4294967040 0xffffffff))) |
| 53 | + (v128.const i32x4 0 0xffffffff 4294967040 0xffffffff) |
| 54 | + ;; output generated by the algorithm in V8 and SpiderMonkey |
| 55 | + (v128.const i32x4 0 0xffffffff 4294967040 0))) |
54 | 56 |
|
55 | 57 | (assert_return (invoke "i32x4.relaxed_trunc_f32x4_u" |
56 | 58 | (v128.const f32x4 nan -nan nan:0x444444 -nan:0x444444)) |
57 | 59 | ;; nans -> 0 or UINT32_MAX |
58 | 60 | (either (v128.const i32x4 0 0 0 0) |
59 | | - (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff))) |
| 61 | + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) |
| 62 | + ;; output generated by the algorithm in V8 and SpiderMonkey |
| 63 | + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000))) |
60 | 64 |
|
61 | 65 | (assert_return (invoke "i32x4.relaxed_trunc_f64x2_s_zero" |
62 | 66 | (v128.const f64x2 -2147483904.0 2147483904.0)) |
|
73 | 77 | (v128.const f64x2 -1.0 4294967296.0)) |
74 | 78 | ;; out of range -> saturate or UINT32_MAX |
75 | 79 | (either (v128.const i32x4 0 0xffffffff 0 0) |
76 | | - (v128.const i32x4 0xffffffff 0xffffffff 0 0))) |
| 80 | + (v128.const i32x4 0xffffffff 0xffffffff 0 0) |
| 81 | + ;; output generated by the algorithm in V8 and SpiderMonkey |
| 82 | + (v128.const i32x4 0xfffffffe 0 0 0))) |
77 | 83 |
|
78 | 84 | (assert_return (invoke "i32x4.relaxed_trunc_f64x2_u_zero" |
79 | 85 | (v128.const f64x2 nan -nan)) |
|
0 commit comments