|
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 |
| 63 | + (v128.const i32x4 0xc0000000 0xc0000000 0xc4444400 0xc4444400) |
| 64 | + ;; output generated by the algorithm in SpiderMonkey |
| 65 | + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000))) |
60 | 66 |
|
61 | 67 | (assert_return (invoke "i32x4.relaxed_trunc_f64x2_s_zero" |
62 | 68 | (v128.const f64x2 -2147483904.0 2147483904.0)) |
|
73 | 79 | (v128.const f64x2 -1.0 4294967296.0)) |
74 | 80 | ;; out of range -> saturate or UINT32_MAX |
75 | 81 | (either (v128.const i32x4 0 0xffffffff 0 0) |
76 | | - (v128.const i32x4 0xffffffff 0xffffffff 0 0))) |
| 82 | + (v128.const i32x4 0xffffffff 0xffffffff 0 0) |
| 83 | + ;; output generated by the algorithm in V8 and SpiderMonkey |
| 84 | + (v128.const i32x4 0xfffffffe 0 0 0))) |
77 | 85 |
|
78 | 86 | (assert_return (invoke "i32x4.relaxed_trunc_f64x2_u_zero" |
79 | 87 | (v128.const f64x2 nan -nan)) |
|
0 commit comments