diff options
Diffstat (limited to 'js/src/jit-test/tests/wasm/spec/spec/conversions.wast.js')
-rw-r--r-- | js/src/jit-test/tests/wasm/spec/spec/conversions.wast.js | 3109 |
1 files changed, 3109 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/spec/spec/conversions.wast.js b/js/src/jit-test/tests/wasm/spec/spec/conversions.wast.js new file mode 100644 index 0000000000..b845545c23 --- /dev/null +++ b/js/src/jit-test/tests/wasm/spec/spec/conversions.wast.js @@ -0,0 +1,3109 @@ +/* Copyright 2021 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// ./test/core/conversions.wast + +// ./test/core/conversions.wast:1 +let $0 = instantiate(`(module + (func (export "i64.extend_i32_s") (param $$x i32) (result i64) (i64.extend_i32_s (local.get $$x))) + (func (export "i64.extend_i32_u") (param $$x i32) (result i64) (i64.extend_i32_u (local.get $$x))) + (func (export "i32.wrap_i64") (param $$x i64) (result i32) (i32.wrap_i64 (local.get $$x))) + (func (export "i32.trunc_f32_s") (param $$x f32) (result i32) (i32.trunc_f32_s (local.get $$x))) + (func (export "i32.trunc_f32_u") (param $$x f32) (result i32) (i32.trunc_f32_u (local.get $$x))) + (func (export "i32.trunc_f64_s") (param $$x f64) (result i32) (i32.trunc_f64_s (local.get $$x))) + (func (export "i32.trunc_f64_u") (param $$x f64) (result i32) (i32.trunc_f64_u (local.get $$x))) + (func (export "i64.trunc_f32_s") (param $$x f32) (result i64) (i64.trunc_f32_s (local.get $$x))) + (func (export "i64.trunc_f32_u") (param $$x f32) (result i64) (i64.trunc_f32_u (local.get $$x))) + (func (export "i64.trunc_f64_s") (param $$x f64) (result i64) (i64.trunc_f64_s (local.get $$x))) + (func (export "i64.trunc_f64_u") (param $$x f64) (result i64) (i64.trunc_f64_u (local.get $$x))) + (func (export "i32.trunc_sat_f32_s") (param $$x f32) (result i32) (i32.trunc_sat_f32_s (local.get $$x))) + (func (export "i32.trunc_sat_f32_u") (param $$x f32) (result i32) (i32.trunc_sat_f32_u (local.get $$x))) + (func (export "i32.trunc_sat_f64_s") (param $$x f64) (result i32) (i32.trunc_sat_f64_s (local.get $$x))) + (func (export "i32.trunc_sat_f64_u") (param $$x f64) (result i32) (i32.trunc_sat_f64_u (local.get $$x))) + (func (export "i64.trunc_sat_f32_s") (param $$x f32) (result i64) (i64.trunc_sat_f32_s (local.get $$x))) + (func (export "i64.trunc_sat_f32_u") (param $$x f32) (result i64) (i64.trunc_sat_f32_u (local.get $$x))) + (func (export "i64.trunc_sat_f64_s") (param $$x f64) (result i64) (i64.trunc_sat_f64_s (local.get $$x))) + (func (export "i64.trunc_sat_f64_u") (param $$x f64) (result i64) (i64.trunc_sat_f64_u (local.get $$x))) + (func (export "f32.convert_i32_s") (param $$x i32) (result f32) (f32.convert_i32_s (local.get $$x))) + (func (export "f32.convert_i64_s") (param $$x i64) (result f32) (f32.convert_i64_s (local.get $$x))) + (func (export "f64.convert_i32_s") (param $$x i32) (result f64) (f64.convert_i32_s (local.get $$x))) + (func (export "f64.convert_i64_s") (param $$x i64) (result f64) (f64.convert_i64_s (local.get $$x))) + (func (export "f32.convert_i32_u") (param $$x i32) (result f32) (f32.convert_i32_u (local.get $$x))) + (func (export "f32.convert_i64_u") (param $$x i64) (result f32) (f32.convert_i64_u (local.get $$x))) + (func (export "f64.convert_i32_u") (param $$x i32) (result f64) (f64.convert_i32_u (local.get $$x))) + (func (export "f64.convert_i64_u") (param $$x i64) (result f64) (f64.convert_i64_u (local.get $$x))) + (func (export "f64.promote_f32") (param $$x f32) (result f64) (f64.promote_f32 (local.get $$x))) + (func (export "f32.demote_f64") (param $$x f64) (result f32) (f32.demote_f64 (local.get $$x))) + (func (export "f32.reinterpret_i32") (param $$x i32) (result f32) (f32.reinterpret_i32 (local.get $$x))) + (func (export "f64.reinterpret_i64") (param $$x i64) (result f64) (f64.reinterpret_i64 (local.get $$x))) + (func (export "i32.reinterpret_f32") (param $$x f32) (result i32) (i32.reinterpret_f32 (local.get $$x))) + (func (export "i64.reinterpret_f64") (param $$x f64) (result i64) (i64.reinterpret_f64 (local.get $$x))) +)`); + +// ./test/core/conversions.wast:37 +assert_return(() => invoke($0, `i64.extend_i32_s`, [0]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:38 +assert_return(() => invoke($0, `i64.extend_i32_s`, [10000]), [value("i64", 10000n)]); + +// ./test/core/conversions.wast:39 +assert_return(() => invoke($0, `i64.extend_i32_s`, [-10000]), [value("i64", -10000n)]); + +// ./test/core/conversions.wast:40 +assert_return(() => invoke($0, `i64.extend_i32_s`, [-1]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:41 +assert_return(() => invoke($0, `i64.extend_i32_s`, [2147483647]), [value("i64", 2147483647n)]); + +// ./test/core/conversions.wast:42 +assert_return(() => invoke($0, `i64.extend_i32_s`, [-2147483648]), [value("i64", -2147483648n)]); + +// ./test/core/conversions.wast:44 +assert_return(() => invoke($0, `i64.extend_i32_u`, [0]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:45 +assert_return(() => invoke($0, `i64.extend_i32_u`, [10000]), [value("i64", 10000n)]); + +// ./test/core/conversions.wast:46 +assert_return(() => invoke($0, `i64.extend_i32_u`, [-10000]), [value("i64", 4294957296n)]); + +// ./test/core/conversions.wast:47 +assert_return(() => invoke($0, `i64.extend_i32_u`, [-1]), [value("i64", 4294967295n)]); + +// ./test/core/conversions.wast:48 +assert_return(() => invoke($0, `i64.extend_i32_u`, [2147483647]), [value("i64", 2147483647n)]); + +// ./test/core/conversions.wast:49 +assert_return(() => invoke($0, `i64.extend_i32_u`, [-2147483648]), [value("i64", 2147483648n)]); + +// ./test/core/conversions.wast:51 +assert_return(() => invoke($0, `i32.wrap_i64`, [-1n]), [value("i32", -1)]); + +// ./test/core/conversions.wast:52 +assert_return(() => invoke($0, `i32.wrap_i64`, [-100000n]), [value("i32", -100000)]); + +// ./test/core/conversions.wast:53 +assert_return(() => invoke($0, `i32.wrap_i64`, [2147483648n]), [value("i32", -2147483648)]); + +// ./test/core/conversions.wast:54 +assert_return(() => invoke($0, `i32.wrap_i64`, [-2147483649n]), [value("i32", 2147483647)]); + +// ./test/core/conversions.wast:55 +assert_return(() => invoke($0, `i32.wrap_i64`, [-4294967296n]), [value("i32", 0)]); + +// ./test/core/conversions.wast:56 +assert_return(() => invoke($0, `i32.wrap_i64`, [-4294967297n]), [value("i32", -1)]); + +// ./test/core/conversions.wast:57 +assert_return(() => invoke($0, `i32.wrap_i64`, [-4294967295n]), [value("i32", 1)]); + +// ./test/core/conversions.wast:58 +assert_return(() => invoke($0, `i32.wrap_i64`, [0n]), [value("i32", 0)]); + +// ./test/core/conversions.wast:59 +assert_return(() => invoke($0, `i32.wrap_i64`, [1311768467463790320n]), [value("i32", -1698898192)]); + +// ./test/core/conversions.wast:60 +assert_return(() => invoke($0, `i32.wrap_i64`, [4294967295n]), [value("i32", -1)]); + +// ./test/core/conversions.wast:61 +assert_return(() => invoke($0, `i32.wrap_i64`, [4294967296n]), [value("i32", 0)]); + +// ./test/core/conversions.wast:62 +assert_return(() => invoke($0, `i32.wrap_i64`, [4294967297n]), [value("i32", 1)]); + +// ./test/core/conversions.wast:64 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:65 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", -0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:66 +assert_return( + () => invoke($0, `i32.trunc_f32_s`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:67 +assert_return( + () => invoke($0, `i32.trunc_f32_s`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:68 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", 1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:69 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", 1.1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:70 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", 1.5)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:71 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", -1)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:72 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", -1.1)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:73 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", -1.5)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:74 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", -1.9)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:75 +assert_return(() => invoke($0, `i32.trunc_f32_s`, [value("f32", -2)]), [value("i32", -2)]); + +// ./test/core/conversions.wast:76 +assert_return( + () => invoke($0, `i32.trunc_f32_s`, [value("f32", 2147483500)]), + [value("i32", 2147483520)], +); + +// ./test/core/conversions.wast:77 +assert_return( + () => invoke($0, `i32.trunc_f32_s`, [value("f32", -2147483600)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:78 +assert_trap(() => invoke($0, `i32.trunc_f32_s`, [value("f32", 2147483600)]), `integer overflow`); + +// ./test/core/conversions.wast:79 +assert_trap(() => invoke($0, `i32.trunc_f32_s`, [value("f32", -2147484000)]), `integer overflow`); + +// ./test/core/conversions.wast:80 +assert_trap(() => invoke($0, `i32.trunc_f32_s`, [value("f32", Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:81 +assert_trap(() => invoke($0, `i32.trunc_f32_s`, [value("f32", -Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:82 +assert_trap( + () => invoke($0, `i32.trunc_f32_s`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:83 +assert_trap( + () => invoke($0, `i32.trunc_f32_s`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:84 +assert_trap( + () => invoke($0, `i32.trunc_f32_s`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:85 +assert_trap( + () => invoke($0, `i32.trunc_f32_s`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:87 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:88 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", -0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:89 +assert_return( + () => invoke($0, `i32.trunc_f32_u`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:90 +assert_return( + () => invoke($0, `i32.trunc_f32_u`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:91 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", 1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:92 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", 1.1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:93 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", 1.5)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:94 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", 1.9)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:95 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", 2)]), [value("i32", 2)]); + +// ./test/core/conversions.wast:96 +assert_return( + () => invoke($0, `i32.trunc_f32_u`, [value("f32", 2147483600)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:97 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", 4294967000)]), [value("i32", -256)]); + +// ./test/core/conversions.wast:98 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", -0.9)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:99 +assert_return(() => invoke($0, `i32.trunc_f32_u`, [value("f32", -0.99999994)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:100 +assert_trap(() => invoke($0, `i32.trunc_f32_u`, [value("f32", 4294967300)]), `integer overflow`); + +// ./test/core/conversions.wast:101 +assert_trap(() => invoke($0, `i32.trunc_f32_u`, [value("f32", -1)]), `integer overflow`); + +// ./test/core/conversions.wast:102 +assert_trap(() => invoke($0, `i32.trunc_f32_u`, [value("f32", Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:103 +assert_trap(() => invoke($0, `i32.trunc_f32_u`, [value("f32", -Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:104 +assert_trap( + () => invoke($0, `i32.trunc_f32_u`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:105 +assert_trap( + () => invoke($0, `i32.trunc_f32_u`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:106 +assert_trap( + () => invoke($0, `i32.trunc_f32_u`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:107 +assert_trap( + () => invoke($0, `i32.trunc_f32_u`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:109 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:110 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", -0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:111 +assert_return( + () => invoke($0, `i32.trunc_f64_s`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:112 +assert_return( + () => invoke($0, `i32.trunc_f64_s`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:113 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", 1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:114 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", 1.1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:115 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", 1.5)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:116 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", -1)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:117 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", -1.1)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:118 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", -1.5)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:119 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", -1.9)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:120 +assert_return(() => invoke($0, `i32.trunc_f64_s`, [value("f64", -2)]), [value("i32", -2)]); + +// ./test/core/conversions.wast:121 +assert_return( + () => invoke($0, `i32.trunc_f64_s`, [value("f64", 2147483647)]), + [value("i32", 2147483647)], +); + +// ./test/core/conversions.wast:122 +assert_return( + () => invoke($0, `i32.trunc_f64_s`, [value("f64", -2147483648)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:123 +assert_return( + () => invoke($0, `i32.trunc_f64_s`, [value("f64", -2147483648.9)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:124 +assert_return( + () => invoke($0, `i32.trunc_f64_s`, [value("f64", 2147483647.9)]), + [value("i32", 2147483647)], +); + +// ./test/core/conversions.wast:125 +assert_trap(() => invoke($0, `i32.trunc_f64_s`, [value("f64", 2147483648)]), `integer overflow`); + +// ./test/core/conversions.wast:126 +assert_trap(() => invoke($0, `i32.trunc_f64_s`, [value("f64", -2147483649)]), `integer overflow`); + +// ./test/core/conversions.wast:127 +assert_trap(() => invoke($0, `i32.trunc_f64_s`, [value("f64", Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:128 +assert_trap(() => invoke($0, `i32.trunc_f64_s`, [value("f64", -Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:129 +assert_trap( + () => invoke($0, `i32.trunc_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:130 +assert_trap( + () => invoke($0, `i32.trunc_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:131 +assert_trap( + () => invoke($0, `i32.trunc_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:132 +assert_trap( + () => invoke($0, `i32.trunc_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:134 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:135 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", -0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:136 +assert_return( + () => invoke($0, `i32.trunc_f64_u`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:137 +assert_return( + () => invoke($0, `i32.trunc_f64_u`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:138 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:139 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 1.1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:140 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 1.5)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:141 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 1.9)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:142 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 2)]), [value("i32", 2)]); + +// ./test/core/conversions.wast:143 +assert_return( + () => invoke($0, `i32.trunc_f64_u`, [value("f64", 2147483648)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:144 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 4294967295)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:145 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", -0.9)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:146 +assert_return( + () => invoke($0, `i32.trunc_f64_u`, [value("f64", -0.9999999999999999)]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:147 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 100000000)]), [value("i32", 100000000)]); + +// ./test/core/conversions.wast:148 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", -0.9)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:149 +assert_return(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 4294967295.9)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:150 +assert_trap(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 4294967296)]), `integer overflow`); + +// ./test/core/conversions.wast:151 +assert_trap(() => invoke($0, `i32.trunc_f64_u`, [value("f64", -1)]), `integer overflow`); + +// ./test/core/conversions.wast:152 +assert_trap(() => invoke($0, `i32.trunc_f64_u`, [value("f64", 10000000000000000)]), `integer overflow`); + +// ./test/core/conversions.wast:153 +assert_trap( + () => invoke($0, `i32.trunc_f64_u`, [value("f64", 1000000000000000000000000000000)]), + `integer overflow`, +); + +// ./test/core/conversions.wast:154 +assert_trap( + () => invoke($0, `i32.trunc_f64_u`, [value("f64", 9223372036854776000)]), + `integer overflow`, +); + +// ./test/core/conversions.wast:155 +assert_trap(() => invoke($0, `i32.trunc_f64_u`, [value("f64", Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:156 +assert_trap(() => invoke($0, `i32.trunc_f64_u`, [value("f64", -Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:157 +assert_trap( + () => invoke($0, `i32.trunc_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:158 +assert_trap( + () => invoke($0, `i32.trunc_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:159 +assert_trap( + () => invoke($0, `i32.trunc_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:160 +assert_trap( + () => invoke($0, `i32.trunc_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:162 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:163 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", -0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:164 +assert_return( + () => invoke($0, `i64.trunc_f32_s`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:165 +assert_return( + () => invoke($0, `i64.trunc_f32_s`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:166 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", 1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:167 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", 1.1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:168 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", 1.5)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:169 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", -1)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:170 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", -1.1)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:171 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", -1.5)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:172 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", -1.9)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:173 +assert_return(() => invoke($0, `i64.trunc_f32_s`, [value("f32", -2)]), [value("i64", -2n)]); + +// ./test/core/conversions.wast:174 +assert_return( + () => invoke($0, `i64.trunc_f32_s`, [value("f32", 4294967300)]), + [value("i64", 4294967296n)], +); + +// ./test/core/conversions.wast:175 +assert_return( + () => invoke($0, `i64.trunc_f32_s`, [value("f32", -4294967300)]), + [value("i64", -4294967296n)], +); + +// ./test/core/conversions.wast:176 +assert_return( + () => invoke($0, `i64.trunc_f32_s`, [value("f32", 9223371500000000000)]), + [value("i64", 9223371487098961920n)], +); + +// ./test/core/conversions.wast:177 +assert_return( + () => invoke($0, `i64.trunc_f32_s`, [value("f32", -9223372000000000000)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:178 +assert_trap( + () => invoke($0, `i64.trunc_f32_s`, [value("f32", 9223372000000000000)]), + `integer overflow`, +); + +// ./test/core/conversions.wast:179 +assert_trap( + () => invoke($0, `i64.trunc_f32_s`, [value("f32", -9223373000000000000)]), + `integer overflow`, +); + +// ./test/core/conversions.wast:180 +assert_trap(() => invoke($0, `i64.trunc_f32_s`, [value("f32", Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:181 +assert_trap(() => invoke($0, `i64.trunc_f32_s`, [value("f32", -Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:182 +assert_trap( + () => invoke($0, `i64.trunc_f32_s`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:183 +assert_trap( + () => invoke($0, `i64.trunc_f32_s`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:184 +assert_trap( + () => invoke($0, `i64.trunc_f32_s`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:185 +assert_trap( + () => invoke($0, `i64.trunc_f32_s`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:187 +assert_return(() => invoke($0, `i64.trunc_f32_u`, [value("f32", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:188 +assert_return(() => invoke($0, `i64.trunc_f32_u`, [value("f32", -0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:189 +assert_return( + () => invoke($0, `i64.trunc_f32_u`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:190 +assert_return( + () => invoke($0, `i64.trunc_f32_u`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:191 +assert_return(() => invoke($0, `i64.trunc_f32_u`, [value("f32", 1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:192 +assert_return(() => invoke($0, `i64.trunc_f32_u`, [value("f32", 1.1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:193 +assert_return(() => invoke($0, `i64.trunc_f32_u`, [value("f32", 1.5)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:194 +assert_return( + () => invoke($0, `i64.trunc_f32_u`, [value("f32", 4294967300)]), + [value("i64", 4294967296n)], +); + +// ./test/core/conversions.wast:195 +assert_return( + () => invoke($0, `i64.trunc_f32_u`, [value("f32", 18446743000000000000)]), + [value("i64", -1099511627776n)], +); + +// ./test/core/conversions.wast:196 +assert_return(() => invoke($0, `i64.trunc_f32_u`, [value("f32", -0.9)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:197 +assert_return(() => invoke($0, `i64.trunc_f32_u`, [value("f32", -0.99999994)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:198 +assert_trap( + () => invoke($0, `i64.trunc_f32_u`, [value("f32", 18446744000000000000)]), + `integer overflow`, +); + +// ./test/core/conversions.wast:199 +assert_trap(() => invoke($0, `i64.trunc_f32_u`, [value("f32", -1)]), `integer overflow`); + +// ./test/core/conversions.wast:200 +assert_trap(() => invoke($0, `i64.trunc_f32_u`, [value("f32", Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:201 +assert_trap(() => invoke($0, `i64.trunc_f32_u`, [value("f32", -Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:202 +assert_trap( + () => invoke($0, `i64.trunc_f32_u`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:203 +assert_trap( + () => invoke($0, `i64.trunc_f32_u`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:204 +assert_trap( + () => invoke($0, `i64.trunc_f32_u`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:205 +assert_trap( + () => invoke($0, `i64.trunc_f32_u`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:207 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:208 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", -0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:209 +assert_return( + () => invoke($0, `i64.trunc_f64_s`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:210 +assert_return( + () => invoke($0, `i64.trunc_f64_s`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:211 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", 1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:212 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", 1.1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:213 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", 1.5)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:214 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", -1)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:215 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", -1.1)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:216 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", -1.5)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:217 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", -1.9)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:218 +assert_return(() => invoke($0, `i64.trunc_f64_s`, [value("f64", -2)]), [value("i64", -2n)]); + +// ./test/core/conversions.wast:219 +assert_return( + () => invoke($0, `i64.trunc_f64_s`, [value("f64", 4294967296)]), + [value("i64", 4294967296n)], +); + +// ./test/core/conversions.wast:220 +assert_return( + () => invoke($0, `i64.trunc_f64_s`, [value("f64", -4294967296)]), + [value("i64", -4294967296n)], +); + +// ./test/core/conversions.wast:221 +assert_return( + () => invoke($0, `i64.trunc_f64_s`, [value("f64", 9223372036854775000)]), + [value("i64", 9223372036854774784n)], +); + +// ./test/core/conversions.wast:222 +assert_return( + () => invoke($0, `i64.trunc_f64_s`, [value("f64", -9223372036854776000)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:223 +assert_trap( + () => invoke($0, `i64.trunc_f64_s`, [value("f64", 9223372036854776000)]), + `integer overflow`, +); + +// ./test/core/conversions.wast:224 +assert_trap( + () => invoke($0, `i64.trunc_f64_s`, [value("f64", -9223372036854778000)]), + `integer overflow`, +); + +// ./test/core/conversions.wast:225 +assert_trap(() => invoke($0, `i64.trunc_f64_s`, [value("f64", Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:226 +assert_trap(() => invoke($0, `i64.trunc_f64_s`, [value("f64", -Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:227 +assert_trap( + () => invoke($0, `i64.trunc_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:228 +assert_trap( + () => invoke($0, `i64.trunc_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:229 +assert_trap( + () => invoke($0, `i64.trunc_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:230 +assert_trap( + () => invoke($0, `i64.trunc_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:232 +assert_return(() => invoke($0, `i64.trunc_f64_u`, [value("f64", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:233 +assert_return(() => invoke($0, `i64.trunc_f64_u`, [value("f64", -0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:234 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:235 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:236 +assert_return(() => invoke($0, `i64.trunc_f64_u`, [value("f64", 1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:237 +assert_return(() => invoke($0, `i64.trunc_f64_u`, [value("f64", 1.1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:238 +assert_return(() => invoke($0, `i64.trunc_f64_u`, [value("f64", 1.5)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:239 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [value("f64", 4294967295)]), + [value("i64", 4294967295n)], +); + +// ./test/core/conversions.wast:240 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [value("f64", 4294967296)]), + [value("i64", 4294967296n)], +); + +// ./test/core/conversions.wast:241 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [value("f64", 18446744073709550000)]), + [value("i64", -2048n)], +); + +// ./test/core/conversions.wast:242 +assert_return(() => invoke($0, `i64.trunc_f64_u`, [value("f64", -0.9)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:243 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [value("f64", -0.9999999999999999)]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:244 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [value("f64", 100000000)]), + [value("i64", 100000000n)], +); + +// ./test/core/conversions.wast:245 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [value("f64", 10000000000000000)]), + [value("i64", 10000000000000000n)], +); + +// ./test/core/conversions.wast:246 +assert_return( + () => invoke($0, `i64.trunc_f64_u`, [value("f64", 9223372036854776000)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:247 +assert_trap( + () => invoke($0, `i64.trunc_f64_u`, [value("f64", 18446744073709552000)]), + `integer overflow`, +); + +// ./test/core/conversions.wast:248 +assert_trap(() => invoke($0, `i64.trunc_f64_u`, [value("f64", -1)]), `integer overflow`); + +// ./test/core/conversions.wast:249 +assert_trap(() => invoke($0, `i64.trunc_f64_u`, [value("f64", Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:250 +assert_trap(() => invoke($0, `i64.trunc_f64_u`, [value("f64", -Infinity)]), `integer overflow`); + +// ./test/core/conversions.wast:251 +assert_trap( + () => invoke($0, `i64.trunc_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:252 +assert_trap( + () => invoke($0, `i64.trunc_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:253 +assert_trap( + () => invoke($0, `i64.trunc_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:254 +assert_trap( + () => invoke($0, `i64.trunc_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + `invalid conversion to integer`, +); + +// ./test/core/conversions.wast:256 +assert_return(() => invoke($0, `f32.convert_i32_s`, [1]), [value("f32", 1)]); + +// ./test/core/conversions.wast:257 +assert_return(() => invoke($0, `f32.convert_i32_s`, [-1]), [value("f32", -1)]); + +// ./test/core/conversions.wast:258 +assert_return(() => invoke($0, `f32.convert_i32_s`, [0]), [value("f32", 0)]); + +// ./test/core/conversions.wast:259 +assert_return(() => invoke($0, `f32.convert_i32_s`, [2147483647]), [value("f32", 2147483600)]); + +// ./test/core/conversions.wast:260 +assert_return(() => invoke($0, `f32.convert_i32_s`, [-2147483648]), [value("f32", -2147483600)]); + +// ./test/core/conversions.wast:261 +assert_return(() => invoke($0, `f32.convert_i32_s`, [1234567890]), [value("f32", 1234568000)]); + +// ./test/core/conversions.wast:265 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:266 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:267 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:268 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:269 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", 1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:270 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", 1.1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:271 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", 1.5)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:272 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -1)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:273 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -1.1)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:274 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -1.5)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:275 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -1.9)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:276 +assert_return(() => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -2)]), [value("i32", -2)]); + +// ./test/core/conversions.wast:277 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", 2147483500)]), + [value("i32", 2147483520)], +); + +// ./test/core/conversions.wast:278 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -2147483600)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:279 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", 2147483600)]), + [value("i32", 2147483647)], +); + +// ./test/core/conversions.wast:280 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -2147484000)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:281 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", Infinity)]), + [value("i32", 2147483647)], +); + +// ./test/core/conversions.wast:282 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [value("f32", -Infinity)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:283 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:284 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:285 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:286 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_s`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:288 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:289 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", -0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:290 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_u`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:291 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_u`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:292 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:293 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 1.1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:294 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 1.5)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:295 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 1.9)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:296 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 2)]), [value("i32", 2)]); + +// ./test/core/conversions.wast:297 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 2147483600)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:298 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 4294967000)]), [value("i32", -256)]); + +// ./test/core/conversions.wast:299 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", -0.9)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:300 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", -0.99999994)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:301 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", 4294967300)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:302 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", -1)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:303 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", Infinity)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:304 +assert_return(() => invoke($0, `i32.trunc_sat_f32_u`, [value("f32", -Infinity)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:305 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_u`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:306 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_u`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:307 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_u`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:308 +assert_return( + () => invoke($0, `i32.trunc_sat_f32_u`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:310 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:311 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:312 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:313 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:314 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", 1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:315 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", 1.1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:316 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", 1.5)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:317 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -1)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:318 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -1.1)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:319 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -1.5)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:320 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -1.9)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:321 +assert_return(() => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -2)]), [value("i32", -2)]); + +// ./test/core/conversions.wast:322 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", 2147483647)]), + [value("i32", 2147483647)], +); + +// ./test/core/conversions.wast:323 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -2147483648)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:324 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", 2147483648)]), + [value("i32", 2147483647)], +); + +// ./test/core/conversions.wast:325 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -2147483649)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:326 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", Infinity)]), + [value("i32", 2147483647)], +); + +// ./test/core/conversions.wast:327 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [value("f64", -Infinity)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:328 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:329 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:330 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:331 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:333 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:334 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", -0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:335 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:336 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:337 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:338 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 1.1)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:339 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 1.5)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:340 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 1.9)]), [value("i32", 1)]); + +// ./test/core/conversions.wast:341 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 2)]), [value("i32", 2)]); + +// ./test/core/conversions.wast:342 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 2147483648)]), + [value("i32", -2147483648)], +); + +// ./test/core/conversions.wast:343 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 4294967295)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:344 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", -0.9)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:345 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", -0.9999999999999999)]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:346 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 100000000)]), + [value("i32", 100000000)], +); + +// ./test/core/conversions.wast:347 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 4294967296)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:348 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", -1)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:349 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 10000000000000000)]), + [value("i32", -1)], +); + +// ./test/core/conversions.wast:350 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [ + value("f64", 1000000000000000000000000000000), + ]), + [value("i32", -1)], +); + +// ./test/core/conversions.wast:351 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", 9223372036854776000)]), + [value("i32", -1)], +); + +// ./test/core/conversions.wast:352 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", Infinity)]), [value("i32", -1)]); + +// ./test/core/conversions.wast:353 +assert_return(() => invoke($0, `i32.trunc_sat_f64_u`, [value("f64", -Infinity)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:354 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:355 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:356 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:357 +assert_return( + () => invoke($0, `i32.trunc_sat_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + [value("i32", 0)], +); + +// ./test/core/conversions.wast:359 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:360 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:361 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:362 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:363 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", 1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:364 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", 1.1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:365 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", 1.5)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:366 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -1)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:367 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -1.1)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:368 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -1.5)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:369 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -1.9)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:370 +assert_return(() => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -2)]), [value("i64", -2n)]); + +// ./test/core/conversions.wast:371 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", 4294967300)]), + [value("i64", 4294967296n)], +); + +// ./test/core/conversions.wast:372 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -4294967300)]), + [value("i64", -4294967296n)], +); + +// ./test/core/conversions.wast:373 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", 9223371500000000000)]), + [value("i64", 9223371487098961920n)], +); + +// ./test/core/conversions.wast:374 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -9223372000000000000)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:375 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", 9223372000000000000)]), + [value("i64", 9223372036854775807n)], +); + +// ./test/core/conversions.wast:376 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -9223373000000000000)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:377 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", Infinity)]), + [value("i64", 9223372036854775807n)], +); + +// ./test/core/conversions.wast:378 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [value("f32", -Infinity)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:379 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:380 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:381 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:382 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_s`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:384 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:385 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", -0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:386 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:387 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:388 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", 1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:389 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", 1.1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:390 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", 1.5)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:391 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", 4294967300)]), + [value("i64", 4294967296n)], +); + +// ./test/core/conversions.wast:392 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", 18446743000000000000)]), + [value("i64", -1099511627776n)], +); + +// ./test/core/conversions.wast:393 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", -0.9)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:394 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", -0.99999994)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:395 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", 18446744000000000000)]), + [value("i64", -1n)], +); + +// ./test/core/conversions.wast:396 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", -1)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:397 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", Infinity)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:398 +assert_return(() => invoke($0, `i64.trunc_sat_f32_u`, [value("f32", -Infinity)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:399 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:400 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:401 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:402 +assert_return( + () => invoke($0, `i64.trunc_sat_f32_u`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:404 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:405 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:406 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:407 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:408 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", 1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:409 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", 1.1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:410 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", 1.5)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:411 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -1)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:412 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -1.1)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:413 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -1.5)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:414 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -1.9)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:415 +assert_return(() => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -2)]), [value("i64", -2n)]); + +// ./test/core/conversions.wast:416 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", 4294967296)]), + [value("i64", 4294967296n)], +); + +// ./test/core/conversions.wast:417 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -4294967296)]), + [value("i64", -4294967296n)], +); + +// ./test/core/conversions.wast:418 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", 9223372036854775000)]), + [value("i64", 9223372036854774784n)], +); + +// ./test/core/conversions.wast:419 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -9223372036854776000)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:420 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", 9223372036854776000)]), + [value("i64", 9223372036854775807n)], +); + +// ./test/core/conversions.wast:421 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -9223372036854778000)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:422 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", Infinity)]), + [value("i64", 9223372036854775807n)], +); + +// ./test/core/conversions.wast:423 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [value("f64", -Infinity)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:424 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:425 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:426 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:427 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_s`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:429 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:430 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", -0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:431 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:432 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:433 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:434 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 1.1)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:435 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 1.5)]), [value("i64", 1n)]); + +// ./test/core/conversions.wast:436 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 4294967295)]), + [value("i64", 4294967295n)], +); + +// ./test/core/conversions.wast:437 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 4294967296)]), + [value("i64", 4294967296n)], +); + +// ./test/core/conversions.wast:438 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 18446744073709550000)]), + [value("i64", -2048n)], +); + +// ./test/core/conversions.wast:439 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", -0.9)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:440 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", -0.9999999999999999)]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:441 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 100000000)]), + [value("i64", 100000000n)], +); + +// ./test/core/conversions.wast:442 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 10000000000000000)]), + [value("i64", 10000000000000000n)], +); + +// ./test/core/conversions.wast:443 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 9223372036854776000)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:444 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", 18446744073709552000)]), + [value("i64", -1n)], +); + +// ./test/core/conversions.wast:445 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", -1)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:446 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", Infinity)]), [value("i64", -1n)]); + +// ./test/core/conversions.wast:447 +assert_return(() => invoke($0, `i64.trunc_sat_f64_u`, [value("f64", -Infinity)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:448 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:449 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:450 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:451 +assert_return( + () => invoke($0, `i64.trunc_sat_f64_u`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + [value("i64", 0n)], +); + +// ./test/core/conversions.wast:454 +assert_return(() => invoke($0, `f32.convert_i32_s`, [16777217]), [value("f32", 16777216)]); + +// ./test/core/conversions.wast:455 +assert_return(() => invoke($0, `f32.convert_i32_s`, [-16777217]), [value("f32", -16777216)]); + +// ./test/core/conversions.wast:456 +assert_return(() => invoke($0, `f32.convert_i32_s`, [16777219]), [value("f32", 16777220)]); + +// ./test/core/conversions.wast:457 +assert_return(() => invoke($0, `f32.convert_i32_s`, [-16777219]), [value("f32", -16777220)]); + +// ./test/core/conversions.wast:459 +assert_return(() => invoke($0, `f32.convert_i64_s`, [1n]), [value("f32", 1)]); + +// ./test/core/conversions.wast:460 +assert_return(() => invoke($0, `f32.convert_i64_s`, [-1n]), [value("f32", -1)]); + +// ./test/core/conversions.wast:461 +assert_return(() => invoke($0, `f32.convert_i64_s`, [0n]), [value("f32", 0)]); + +// ./test/core/conversions.wast:462 +assert_return( + () => invoke($0, `f32.convert_i64_s`, [9223372036854775807n]), + [value("f32", 9223372000000000000)], +); + +// ./test/core/conversions.wast:463 +assert_return( + () => invoke($0, `f32.convert_i64_s`, [-9223372036854775808n]), + [value("f32", -9223372000000000000)], +); + +// ./test/core/conversions.wast:464 +assert_return( + () => invoke($0, `f32.convert_i64_s`, [314159265358979n]), + [value("f32", 314159280000000)], +); + +// ./test/core/conversions.wast:466 +assert_return(() => invoke($0, `f32.convert_i64_s`, [16777217n]), [value("f32", 16777216)]); + +// ./test/core/conversions.wast:467 +assert_return(() => invoke($0, `f32.convert_i64_s`, [-16777217n]), [value("f32", -16777216)]); + +// ./test/core/conversions.wast:468 +assert_return(() => invoke($0, `f32.convert_i64_s`, [16777219n]), [value("f32", 16777220)]); + +// ./test/core/conversions.wast:469 +assert_return(() => invoke($0, `f32.convert_i64_s`, [-16777219n]), [value("f32", -16777220)]); + +// ./test/core/conversions.wast:471 +assert_return( + () => invoke($0, `f32.convert_i64_s`, [9223371212221054977n]), + [value("f32", 9223371500000000000)], +); + +// ./test/core/conversions.wast:472 +assert_return( + () => invoke($0, `f32.convert_i64_s`, [-9223371761976868863n]), + [value("f32", -9223371500000000000)], +); + +// ./test/core/conversions.wast:473 +assert_return( + () => invoke($0, `f32.convert_i64_s`, [9007199791611905n]), + [value("f32", 9007200000000000)], +); + +// ./test/core/conversions.wast:474 +assert_return( + () => invoke($0, `f32.convert_i64_s`, [-9007199791611905n]), + [value("f32", -9007200000000000)], +); + +// ./test/core/conversions.wast:476 +assert_return(() => invoke($0, `f64.convert_i32_s`, [1]), [value("f64", 1)]); + +// ./test/core/conversions.wast:477 +assert_return(() => invoke($0, `f64.convert_i32_s`, [-1]), [value("f64", -1)]); + +// ./test/core/conversions.wast:478 +assert_return(() => invoke($0, `f64.convert_i32_s`, [0]), [value("f64", 0)]); + +// ./test/core/conversions.wast:479 +assert_return(() => invoke($0, `f64.convert_i32_s`, [2147483647]), [value("f64", 2147483647)]); + +// ./test/core/conversions.wast:480 +assert_return(() => invoke($0, `f64.convert_i32_s`, [-2147483648]), [value("f64", -2147483648)]); + +// ./test/core/conversions.wast:481 +assert_return(() => invoke($0, `f64.convert_i32_s`, [987654321]), [value("f64", 987654321)]); + +// ./test/core/conversions.wast:483 +assert_return(() => invoke($0, `f64.convert_i64_s`, [1n]), [value("f64", 1)]); + +// ./test/core/conversions.wast:484 +assert_return(() => invoke($0, `f64.convert_i64_s`, [-1n]), [value("f64", -1)]); + +// ./test/core/conversions.wast:485 +assert_return(() => invoke($0, `f64.convert_i64_s`, [0n]), [value("f64", 0)]); + +// ./test/core/conversions.wast:486 +assert_return( + () => invoke($0, `f64.convert_i64_s`, [9223372036854775807n]), + [value("f64", 9223372036854776000)], +); + +// ./test/core/conversions.wast:487 +assert_return( + () => invoke($0, `f64.convert_i64_s`, [-9223372036854775808n]), + [value("f64", -9223372036854776000)], +); + +// ./test/core/conversions.wast:488 +assert_return( + () => invoke($0, `f64.convert_i64_s`, [4669201609102990n]), + [value("f64", 4669201609102990)], +); + +// ./test/core/conversions.wast:490 +assert_return( + () => invoke($0, `f64.convert_i64_s`, [9007199254740993n]), + [value("f64", 9007199254740992)], +); + +// ./test/core/conversions.wast:491 +assert_return( + () => invoke($0, `f64.convert_i64_s`, [-9007199254740993n]), + [value("f64", -9007199254740992)], +); + +// ./test/core/conversions.wast:492 +assert_return( + () => invoke($0, `f64.convert_i64_s`, [9007199254740995n]), + [value("f64", 9007199254740996)], +); + +// ./test/core/conversions.wast:493 +assert_return( + () => invoke($0, `f64.convert_i64_s`, [-9007199254740995n]), + [value("f64", -9007199254740996)], +); + +// ./test/core/conversions.wast:495 +assert_return(() => invoke($0, `f32.convert_i32_u`, [1]), [value("f32", 1)]); + +// ./test/core/conversions.wast:496 +assert_return(() => invoke($0, `f32.convert_i32_u`, [0]), [value("f32", 0)]); + +// ./test/core/conversions.wast:497 +assert_return(() => invoke($0, `f32.convert_i32_u`, [2147483647]), [value("f32", 2147483600)]); + +// ./test/core/conversions.wast:498 +assert_return(() => invoke($0, `f32.convert_i32_u`, [-2147483648]), [value("f32", 2147483600)]); + +// ./test/core/conversions.wast:499 +assert_return(() => invoke($0, `f32.convert_i32_u`, [305419896]), [value("f32", 305419900)]); + +// ./test/core/conversions.wast:500 +assert_return(() => invoke($0, `f32.convert_i32_u`, [-1]), [value("f32", 4294967300)]); + +// ./test/core/conversions.wast:501 +assert_return(() => invoke($0, `f32.convert_i32_u`, [-2147483520]), [value("f32", 2147483600)]); + +// ./test/core/conversions.wast:502 +assert_return(() => invoke($0, `f32.convert_i32_u`, [-2147483519]), [value("f32", 2147484000)]); + +// ./test/core/conversions.wast:503 +assert_return(() => invoke($0, `f32.convert_i32_u`, [-2147483518]), [value("f32", 2147484000)]); + +// ./test/core/conversions.wast:504 +assert_return(() => invoke($0, `f32.convert_i32_u`, [-384]), [value("f32", 4294966800)]); + +// ./test/core/conversions.wast:505 +assert_return(() => invoke($0, `f32.convert_i32_u`, [-383]), [value("f32", 4294967000)]); + +// ./test/core/conversions.wast:506 +assert_return(() => invoke($0, `f32.convert_i32_u`, [-382]), [value("f32", 4294967000)]); + +// ./test/core/conversions.wast:508 +assert_return(() => invoke($0, `f32.convert_i32_u`, [16777217]), [value("f32", 16777216)]); + +// ./test/core/conversions.wast:509 +assert_return(() => invoke($0, `f32.convert_i32_u`, [16777219]), [value("f32", 16777220)]); + +// ./test/core/conversions.wast:511 +assert_return(() => invoke($0, `f32.convert_i64_u`, [1n]), [value("f32", 1)]); + +// ./test/core/conversions.wast:512 +assert_return(() => invoke($0, `f32.convert_i64_u`, [0n]), [value("f32", 0)]); + +// ./test/core/conversions.wast:513 +assert_return( + () => invoke($0, `f32.convert_i64_u`, [9223372036854775807n]), + [value("f32", 9223372000000000000)], +); + +// ./test/core/conversions.wast:514 +assert_return( + () => invoke($0, `f32.convert_i64_u`, [-9223372036854775808n]), + [value("f32", 9223372000000000000)], +); + +// ./test/core/conversions.wast:515 +assert_return(() => invoke($0, `f32.convert_i64_u`, [-1n]), [value("f32", 18446744000000000000)]); + +// ./test/core/conversions.wast:517 +assert_return(() => invoke($0, `f32.convert_i64_u`, [16777217n]), [value("f32", 16777216)]); + +// ./test/core/conversions.wast:518 +assert_return(() => invoke($0, `f32.convert_i64_u`, [16777219n]), [value("f32", 16777220)]); + +// ./test/core/conversions.wast:520 +assert_return( + () => invoke($0, `f32.convert_i64_u`, [9007199791611905n]), + [value("f32", 9007200000000000)], +); + +// ./test/core/conversions.wast:521 +assert_return( + () => invoke($0, `f32.convert_i64_u`, [9223371761976868863n]), + [value("f32", 9223371500000000000)], +); + +// ./test/core/conversions.wast:522 +assert_return( + () => invoke($0, `f32.convert_i64_u`, [-9223371487098961919n]), + [value("f32", 9223373000000000000)], +); + +// ./test/core/conversions.wast:523 +assert_return( + () => invoke($0, `f32.convert_i64_u`, [-1649267441663n]), + [value("f32", 18446743000000000000)], +); + +// ./test/core/conversions.wast:525 +assert_return(() => invoke($0, `f64.convert_i32_u`, [1]), [value("f64", 1)]); + +// ./test/core/conversions.wast:526 +assert_return(() => invoke($0, `f64.convert_i32_u`, [0]), [value("f64", 0)]); + +// ./test/core/conversions.wast:527 +assert_return(() => invoke($0, `f64.convert_i32_u`, [2147483647]), [value("f64", 2147483647)]); + +// ./test/core/conversions.wast:528 +assert_return(() => invoke($0, `f64.convert_i32_u`, [-2147483648]), [value("f64", 2147483648)]); + +// ./test/core/conversions.wast:529 +assert_return(() => invoke($0, `f64.convert_i32_u`, [-1]), [value("f64", 4294967295)]); + +// ./test/core/conversions.wast:531 +assert_return(() => invoke($0, `f64.convert_i64_u`, [1n]), [value("f64", 1)]); + +// ./test/core/conversions.wast:532 +assert_return(() => invoke($0, `f64.convert_i64_u`, [0n]), [value("f64", 0)]); + +// ./test/core/conversions.wast:533 +assert_return( + () => invoke($0, `f64.convert_i64_u`, [9223372036854775807n]), + [value("f64", 9223372036854776000)], +); + +// ./test/core/conversions.wast:534 +assert_return( + () => invoke($0, `f64.convert_i64_u`, [-9223372036854775808n]), + [value("f64", 9223372036854776000)], +); + +// ./test/core/conversions.wast:535 +assert_return(() => invoke($0, `f64.convert_i64_u`, [-1n]), [value("f64", 18446744073709552000)]); + +// ./test/core/conversions.wast:536 +assert_return( + () => invoke($0, `f64.convert_i64_u`, [-9223372036854774784n]), + [value("f64", 9223372036854776000)], +); + +// ./test/core/conversions.wast:537 +assert_return( + () => invoke($0, `f64.convert_i64_u`, [-9223372036854774783n]), + [value("f64", 9223372036854778000)], +); + +// ./test/core/conversions.wast:538 +assert_return( + () => invoke($0, `f64.convert_i64_u`, [-9223372036854774782n]), + [value("f64", 9223372036854778000)], +); + +// ./test/core/conversions.wast:539 +assert_return(() => invoke($0, `f64.convert_i64_u`, [-3072n]), [value("f64", 18446744073709548000)]); + +// ./test/core/conversions.wast:540 +assert_return(() => invoke($0, `f64.convert_i64_u`, [-3071n]), [value("f64", 18446744073709550000)]); + +// ./test/core/conversions.wast:541 +assert_return(() => invoke($0, `f64.convert_i64_u`, [-3070n]), [value("f64", 18446744073709550000)]); + +// ./test/core/conversions.wast:543 +assert_return( + () => invoke($0, `f64.convert_i64_u`, [9007199254740993n]), + [value("f64", 9007199254740992)], +); + +// ./test/core/conversions.wast:544 +assert_return( + () => invoke($0, `f64.convert_i64_u`, [9007199254740995n]), + [value("f64", 9007199254740996)], +); + +// ./test/core/conversions.wast:546 +assert_return(() => invoke($0, `f64.promote_f32`, [value("f32", 0)]), [value("f64", 0)]); + +// ./test/core/conversions.wast:547 +assert_return(() => invoke($0, `f64.promote_f32`, [value("f32", -0)]), [value("f64", -0)]); + +// ./test/core/conversions.wast:548 +assert_return( + () => invoke($0, `f64.promote_f32`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("f64", 0.000000000000000000000000000000000000000000001401298464324817)], +); + +// ./test/core/conversions.wast:549 +assert_return( + () => invoke($0, `f64.promote_f32`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [ + value("f64", -0.000000000000000000000000000000000000000000001401298464324817), + ], +); + +// ./test/core/conversions.wast:550 +assert_return(() => invoke($0, `f64.promote_f32`, [value("f32", 1)]), [value("f64", 1)]); + +// ./test/core/conversions.wast:551 +assert_return(() => invoke($0, `f64.promote_f32`, [value("f32", -1)]), [value("f64", -1)]); + +// ./test/core/conversions.wast:552 +assert_return( + () => invoke($0, `f64.promote_f32`, [ + value("f32", -340282350000000000000000000000000000000), + ]), + [value("f64", -340282346638528860000000000000000000000)], +); + +// ./test/core/conversions.wast:553 +assert_return( + () => invoke($0, `f64.promote_f32`, [ + value("f32", 340282350000000000000000000000000000000), + ]), + [value("f64", 340282346638528860000000000000000000000)], +); + +// ./test/core/conversions.wast:555 +assert_return( + () => invoke($0, `f64.promote_f32`, [ + value("f32", 0.0000000000000000000000000000000000015046328), + ]), + [value("f64", 0.000000000000000000000000000000000001504632769052528)], +); + +// ./test/core/conversions.wast:557 +assert_return( + () => invoke($0, `f64.promote_f32`, [ + value("f32", 66382537000000000000000000000000000000), + ]), + [value("f64", 66382536710104395000000000000000000000)], +); + +// ./test/core/conversions.wast:558 +assert_return(() => invoke($0, `f64.promote_f32`, [value("f32", Infinity)]), [value("f64", Infinity)]); + +// ./test/core/conversions.wast:559 +assert_return(() => invoke($0, `f64.promote_f32`, [value("f32", -Infinity)]), [value("f64", -Infinity)]); + +// ./test/core/conversions.wast:560 +assert_return( + () => invoke($0, `f64.promote_f32`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + [`canonical_nan`], +); + +// ./test/core/conversions.wast:561 +assert_return( + () => invoke($0, `f64.promote_f32`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + [`arithmetic_nan`], +); + +// ./test/core/conversions.wast:562 +assert_return( + () => invoke($0, `f64.promote_f32`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + [`canonical_nan`], +); + +// ./test/core/conversions.wast:563 +assert_return( + () => invoke($0, `f64.promote_f32`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + [`arithmetic_nan`], +); + +// ./test/core/conversions.wast:565 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", 0)]), [value("f32", 0)]); + +// ./test/core/conversions.wast:566 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", -0)]), [value("f32", -0)]); + +// ./test/core/conversions.wast:567 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("f32", 0)], +); + +// ./test/core/conversions.wast:568 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("f32", -0)], +); + +// ./test/core/conversions.wast:569 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", 1)]), [value("f32", 1)]); + +// ./test/core/conversions.wast:570 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", -1)]), [value("f32", -1)]); + +// ./test/core/conversions.wast:571 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.000000000000000000000000000000000000011754942807573643), + ]), + [value("f32", 0.000000000000000000000000000000000000011754944)], +); + +// ./test/core/conversions.wast:572 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -0.000000000000000000000000000000000000011754942807573643), + ]), + [value("f32", -0.000000000000000000000000000000000000011754944)], +); + +// ./test/core/conversions.wast:573 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.000000000000000000000000000000000000011754942807573642), + ]), + [value("f32", 0.000000000000000000000000000000000000011754942)], +); + +// ./test/core/conversions.wast:574 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -0.000000000000000000000000000000000000011754942807573642), + ]), + [value("f32", -0.000000000000000000000000000000000000011754942)], +); + +// ./test/core/conversions.wast:575 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.000000000000000000000000000000000000000000001401298464324817), + ]), + [value("f32", 0.000000000000000000000000000000000000000000001)], +); + +// ./test/core/conversions.wast:576 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -0.000000000000000000000000000000000000000000001401298464324817), + ]), + [value("f32", -0.000000000000000000000000000000000000000000001)], +); + +// ./test/core/conversions.wast:577 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 340282336497324060000000000000000000000), + ]), + [value("f32", 340282330000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:578 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -340282336497324060000000000000000000000), + ]), + [value("f32", -340282330000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:579 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 340282336497324100000000000000000000000), + ]), + [value("f32", 340282350000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:580 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -340282336497324100000000000000000000000), + ]), + [value("f32", -340282350000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:581 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 340282346638528860000000000000000000000), + ]), + [value("f32", 340282350000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:582 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -340282346638528860000000000000000000000), + ]), + [value("f32", -340282350000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:583 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 340282356779733620000000000000000000000), + ]), + [value("f32", 340282350000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:584 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -340282356779733620000000000000000000000), + ]), + [value("f32", -340282350000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:585 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 340282356779733660000000000000000000000), + ]), + [value("f32", Infinity)], +); + +// ./test/core/conversions.wast:586 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -340282356779733660000000000000000000000), + ]), + [value("f32", -Infinity)], +); + +// ./test/core/conversions.wast:587 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.000000000000000000000000000000000001504632769052528), + ]), + [value("f32", 0.0000000000000000000000000000000000015046328)], +); + +// ./test/core/conversions.wast:588 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 66382536710104395000000000000000000000), + ]), + [value("f32", 66382537000000000000000000000000000000)], +); + +// ./test/core/conversions.wast:589 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", Infinity)]), [value("f32", Infinity)]); + +// ./test/core/conversions.wast:590 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", -Infinity)]), [value("f32", -Infinity)]); + +// ./test/core/conversions.wast:591 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", 1.0000000000000002)]), [value("f32", 1)]); + +// ./test/core/conversions.wast:592 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", 0.9999999999999999)]), [value("f32", 1)]); + +// ./test/core/conversions.wast:593 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", 1.0000000596046448)]), [value("f32", 1)]); + +// ./test/core/conversions.wast:594 +assert_return( + () => invoke($0, `f32.demote_f64`, [value("f64", 1.000000059604645)]), + [value("f32", 1.0000001)], +); + +// ./test/core/conversions.wast:595 +assert_return( + () => invoke($0, `f32.demote_f64`, [value("f64", 1.000000178813934)]), + [value("f32", 1.0000001)], +); + +// ./test/core/conversions.wast:596 +assert_return( + () => invoke($0, `f32.demote_f64`, [value("f64", 1.0000001788139343)]), + [value("f32", 1.0000002)], +); + +// ./test/core/conversions.wast:597 +assert_return( + () => invoke($0, `f32.demote_f64`, [value("f64", 1.0000002980232239)]), + [value("f32", 1.0000002)], +); + +// ./test/core/conversions.wast:598 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", 16777217)]), [value("f32", 16777216)]); + +// ./test/core/conversions.wast:599 +assert_return( + () => invoke($0, `f32.demote_f64`, [value("f64", 16777217.000000004)]), + [value("f32", 16777218)], +); + +// ./test/core/conversions.wast:600 +assert_return( + () => invoke($0, `f32.demote_f64`, [value("f64", 16777218.999999996)]), + [value("f32", 16777218)], +); + +// ./test/core/conversions.wast:601 +assert_return(() => invoke($0, `f32.demote_f64`, [value("f64", 16777219)]), [value("f32", 16777220)]); + +// ./test/core/conversions.wast:602 +assert_return( + () => invoke($0, `f32.demote_f64`, [value("f64", 424258443299142700000000000000000)]), + [value("f32", 424258450000000000000000000000000)], +); + +// ./test/core/conversions.wast:603 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.0000000000000000000000000000000001569262107843488), + ]), + [value("f32", 0.00000000000000000000000000000000015692621)], +); + +// ./test/core/conversions.wast:604 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.000000000000000000000000000000000000010551773688605172), + ]), + [value("f32", 0.000000000000000000000000000000000000010551773)], +); + +// ./test/core/conversions.wast:605 +assert_return( + () => invoke($0, `f32.demote_f64`, [value("f64", -2.8238128484141933)]), + [value("f32", -2.823813)], +); + +// ./test/core/conversions.wast:606 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -9063376370095757000000000000000000), + ]), + [value("f32", -9063376000000000000000000000000000)], +); + +// ./test/core/conversions.wast:607 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + [`canonical_nan`], +); + +// ./test/core/conversions.wast:608 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + [`arithmetic_nan`], +); + +// ./test/core/conversions.wast:609 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + [`canonical_nan`], +); + +// ./test/core/conversions.wast:610 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + [`arithmetic_nan`], +); + +// ./test/core/conversions.wast:611 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072014), + ]), + [value("f32", 0)], +); + +// ./test/core/conversions.wast:612 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072014), + ]), + [value("f32", -0)], +); + +// ./test/core/conversions.wast:613 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.0000000000000000000000000000000000000000000007006492321624085), + ]), + [value("f32", 0)], +); + +// ./test/core/conversions.wast:614 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -0.0000000000000000000000000000000000000000000007006492321624085), + ]), + [value("f32", -0)], +); + +// ./test/core/conversions.wast:615 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", 0.0000000000000000000000000000000000000000000007006492321624087), + ]), + [value("f32", 0.000000000000000000000000000000000000000000001)], +); + +// ./test/core/conversions.wast:616 +assert_return( + () => invoke($0, `f32.demote_f64`, [ + value("f64", -0.0000000000000000000000000000000000000000000007006492321624087), + ]), + [value("f32", -0.000000000000000000000000000000000000000000001)], +); + +// ./test/core/conversions.wast:618 +assert_return(() => invoke($0, `f32.reinterpret_i32`, [0]), [value("f32", 0)]); + +// ./test/core/conversions.wast:619 +assert_return(() => invoke($0, `f32.reinterpret_i32`, [-2147483648]), [value("f32", -0)]); + +// ./test/core/conversions.wast:620 +assert_return( + () => invoke($0, `f32.reinterpret_i32`, [1]), + [value("f32", 0.000000000000000000000000000000000000000000001)], +); + +// ./test/core/conversions.wast:621 +assert_return(() => invoke($0, `f32.reinterpret_i32`, [-1]), [bytes("f32", [0xff, 0xff, 0xff, 0xff])]); + +// ./test/core/conversions.wast:622 +assert_return( + () => invoke($0, `f32.reinterpret_i32`, [123456789]), + [value("f32", 0.00000000000000000000000000000000016535997)], +); + +// ./test/core/conversions.wast:623 +assert_return( + () => invoke($0, `f32.reinterpret_i32`, [-2147483647]), + [value("f32", -0.000000000000000000000000000000000000000000001)], +); + +// ./test/core/conversions.wast:624 +assert_return(() => invoke($0, `f32.reinterpret_i32`, [2139095040]), [value("f32", Infinity)]); + +// ./test/core/conversions.wast:625 +assert_return(() => invoke($0, `f32.reinterpret_i32`, [-8388608]), [value("f32", -Infinity)]); + +// ./test/core/conversions.wast:626 +assert_return( + () => invoke($0, `f32.reinterpret_i32`, [2143289344]), + [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])], +); + +// ./test/core/conversions.wast:627 +assert_return( + () => invoke($0, `f32.reinterpret_i32`, [-4194304]), + [bytes("f32", [0x0, 0x0, 0xc0, 0xff])], +); + +// ./test/core/conversions.wast:628 +assert_return( + () => invoke($0, `f32.reinterpret_i32`, [2141192192]), + [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])], +); + +// ./test/core/conversions.wast:629 +assert_return( + () => invoke($0, `f32.reinterpret_i32`, [-6291456]), + [bytes("f32", [0x0, 0x0, 0xa0, 0xff])], +); + +// ./test/core/conversions.wast:631 +assert_return(() => invoke($0, `f64.reinterpret_i64`, [0n]), [value("f64", 0)]); + +// ./test/core/conversions.wast:632 +assert_return( + () => invoke($0, `f64.reinterpret_i64`, [1n]), + [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ], +); + +// ./test/core/conversions.wast:633 +assert_return( + () => invoke($0, `f64.reinterpret_i64`, [-1n]), + [bytes("f64", [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff])], +); + +// ./test/core/conversions.wast:634 +assert_return(() => invoke($0, `f64.reinterpret_i64`, [-9223372036854775808n]), [value("f64", -0)]); + +// ./test/core/conversions.wast:635 +assert_return( + () => invoke($0, `f64.reinterpret_i64`, [1234567890n]), + [ + value("f64", 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000609957582), + ], +); + +// ./test/core/conversions.wast:636 +assert_return( + () => invoke($0, `f64.reinterpret_i64`, [-9223372036854775807n]), + [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ], +); + +// ./test/core/conversions.wast:637 +assert_return(() => invoke($0, `f64.reinterpret_i64`, [9218868437227405312n]), [value("f64", Infinity)]); + +// ./test/core/conversions.wast:638 +assert_return(() => invoke($0, `f64.reinterpret_i64`, [-4503599627370496n]), [value("f64", -Infinity)]); + +// ./test/core/conversions.wast:639 +assert_return( + () => invoke($0, `f64.reinterpret_i64`, [9221120237041090560n]), + [bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f])], +); + +// ./test/core/conversions.wast:640 +assert_return( + () => invoke($0, `f64.reinterpret_i64`, [-2251799813685248n]), + [bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff])], +); + +// ./test/core/conversions.wast:641 +assert_return( + () => invoke($0, `f64.reinterpret_i64`, [9219994337134247936n]), + [bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f])], +); + +// ./test/core/conversions.wast:642 +assert_return( + () => invoke($0, `f64.reinterpret_i64`, [-3377699720527872n]), + [bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff])], +); + +// ./test/core/conversions.wast:644 +assert_return(() => invoke($0, `i32.reinterpret_f32`, [value("f32", 0)]), [value("i32", 0)]); + +// ./test/core/conversions.wast:645 +assert_return(() => invoke($0, `i32.reinterpret_f32`, [value("f32", -0)]), [value("i32", -2147483648)]); + +// ./test/core/conversions.wast:646 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [ + value("f32", 0.000000000000000000000000000000000000000000001), + ]), + [value("i32", 1)], +); + +// ./test/core/conversions.wast:647 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [bytes("f32", [0xff, 0xff, 0xff, 0xff])]), + [value("i32", -1)], +); + +// ./test/core/conversions.wast:648 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [ + value("f32", -0.000000000000000000000000000000000000000000001), + ]), + [value("i32", -2147483647)], +); + +// ./test/core/conversions.wast:649 +assert_return(() => invoke($0, `i32.reinterpret_f32`, [value("f32", 1)]), [value("i32", 1065353216)]); + +// ./test/core/conversions.wast:650 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [value("f32", 3.1415925)]), + [value("i32", 1078530010)], +); + +// ./test/core/conversions.wast:651 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [ + value("f32", 340282350000000000000000000000000000000), + ]), + [value("i32", 2139095039)], +); + +// ./test/core/conversions.wast:652 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [ + value("f32", -340282350000000000000000000000000000000), + ]), + [value("i32", -8388609)], +); + +// ./test/core/conversions.wast:653 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [value("f32", Infinity)]), + [value("i32", 2139095040)], +); + +// ./test/core/conversions.wast:654 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [value("f32", -Infinity)]), + [value("i32", -8388608)], +); + +// ./test/core/conversions.wast:655 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [bytes("f32", [0x0, 0x0, 0xc0, 0x7f])]), + [value("i32", 2143289344)], +); + +// ./test/core/conversions.wast:656 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [bytes("f32", [0x0, 0x0, 0xc0, 0xff])]), + [value("i32", -4194304)], +); + +// ./test/core/conversions.wast:657 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [bytes("f32", [0x0, 0x0, 0xa0, 0x7f])]), + [value("i32", 2141192192)], +); + +// ./test/core/conversions.wast:658 +assert_return( + () => invoke($0, `i32.reinterpret_f32`, [bytes("f32", [0x0, 0x0, 0xa0, 0xff])]), + [value("i32", -6291456)], +); + +// ./test/core/conversions.wast:660 +assert_return(() => invoke($0, `i64.reinterpret_f64`, [value("f64", 0)]), [value("i64", 0n)]); + +// ./test/core/conversions.wast:661 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [value("f64", -0)]), + [value("i64", -9223372036854775808n)], +); + +// ./test/core/conversions.wast:662 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + value("f64", 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", 1n)], +); + +// ./test/core/conversions.wast:663 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + bytes("f64", [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]), + ]), + [value("i64", -1n)], +); + +// ./test/core/conversions.wast:664 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + value("f64", -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005), + ]), + [value("i64", -9223372036854775807n)], +); + +// ./test/core/conversions.wast:665 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [value("f64", 1)]), + [value("i64", 4607182418800017408n)], +); + +// ./test/core/conversions.wast:666 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [value("f64", 3.14159265358979)]), + [value("i64", 4614256656552045841n)], +); + +// ./test/core/conversions.wast:667 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + value("f64", 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000), + ]), + [value("i64", 9218868437227405311n)], +); + +// ./test/core/conversions.wast:668 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + value("f64", -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000), + ]), + [value("i64", -4503599627370497n)], +); + +// ./test/core/conversions.wast:669 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [value("f64", Infinity)]), + [value("i64", 9218868437227405312n)], +); + +// ./test/core/conversions.wast:670 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [value("f64", -Infinity)]), + [value("i64", -4503599627370496n)], +); + +// ./test/core/conversions.wast:671 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f]), + ]), + [value("i64", 9221120237041090560n)], +); + +// ./test/core/conversions.wast:672 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff]), + ]), + [value("i64", -2251799813685248n)], +); + +// ./test/core/conversions.wast:673 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x7f]), + ]), + [value("i64", 9219994337134247936n)], +); + +// ./test/core/conversions.wast:674 +assert_return( + () => invoke($0, `i64.reinterpret_f64`, [ + bytes("f64", [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0xff]), + ]), + [value("i64", -3377699720527872n)], +); + +// ./test/core/conversions.wast:678 +assert_invalid( + () => instantiate(`(module (func (result i32) (i32.wrap_i64 (f32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:679 +assert_invalid( + () => instantiate(`(module (func (result i32) (i32.trunc_f32_s (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:680 +assert_invalid( + () => instantiate(`(module (func (result i32) (i32.trunc_f32_u (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:681 +assert_invalid( + () => instantiate(`(module (func (result i32) (i32.trunc_f64_s (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:682 +assert_invalid( + () => instantiate(`(module (func (result i32) (i32.trunc_f64_u (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:683 +assert_invalid( + () => instantiate(`(module (func (result i32) (i32.reinterpret_f32 (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:684 +assert_invalid( + () => instantiate(`(module (func (result i64) (i64.extend_i32_s (f32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:685 +assert_invalid( + () => instantiate(`(module (func (result i64) (i64.extend_i32_u (f32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:686 +assert_invalid( + () => instantiate(`(module (func (result i64) (i64.trunc_f32_s (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:687 +assert_invalid( + () => instantiate(`(module (func (result i64) (i64.trunc_f32_u (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:688 +assert_invalid( + () => instantiate(`(module (func (result i64) (i64.trunc_f64_s (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:689 +assert_invalid( + () => instantiate(`(module (func (result i64) (i64.trunc_f64_u (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:690 +assert_invalid( + () => instantiate(`(module (func (result i64) (i64.reinterpret_f64 (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:691 +assert_invalid( + () => instantiate(`(module (func (result f32) (f32.convert_i32_s (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:692 +assert_invalid( + () => instantiate(`(module (func (result f32) (f32.convert_i32_u (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:693 +assert_invalid( + () => instantiate(`(module (func (result f32) (f32.convert_i64_s (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:694 +assert_invalid( + () => instantiate(`(module (func (result f32) (f32.convert_i64_u (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:695 +assert_invalid( + () => instantiate(`(module (func (result f32) (f32.demote_f64 (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:696 +assert_invalid( + () => instantiate(`(module (func (result f32) (f32.reinterpret_i32 (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:697 +assert_invalid( + () => instantiate(`(module (func (result f64) (f64.convert_i32_s (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:698 +assert_invalid( + () => instantiate(`(module (func (result f64) (f64.convert_i32_u (i64.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:699 +assert_invalid( + () => instantiate(`(module (func (result f64) (f64.convert_i64_s (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:700 +assert_invalid( + () => instantiate(`(module (func (result f64) (f64.convert_i64_u (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:701 +assert_invalid( + () => instantiate(`(module (func (result f64) (f64.promote_f32 (i32.const 0))))`), + `type mismatch`, +); + +// ./test/core/conversions.wast:702 +assert_invalid( + () => instantiate(`(module (func (result f64) (f64.reinterpret_i64 (i32.const 0))))`), + `type mismatch`, +); |