From c80ca4509f69d3f4933b500545fba0c118ce2312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Sun, 13 Oct 2024 10:05:14 -0700 Subject: [PATCH 01/11] add memory_init tests --- tests/gen.py | 7 +- tests/gen/assert_memory_init.0.c | 163 +++++ tests/gen/assert_memory_init.1.c | 163 +++++ tests/gen/assert_memory_init.11.c | 13 + tests/gen/assert_memory_init.12.c | 11 + tests/gen/assert_memory_init.13.c | 11 + tests/gen/assert_memory_init.14.c | 11 + tests/gen/assert_memory_init.15.c | 11 + tests/gen/assert_memory_init.16.c | 13 + tests/gen/assert_memory_init.17.c | 11 + tests/gen/assert_memory_init.18.c | 13 + tests/gen/assert_memory_init.19.c | 13 + tests/gen/assert_memory_init.2.c | 163 +++++ tests/gen/assert_memory_init.20.c | 11 + tests/gen/assert_memory_init.3.c | 163 +++++ tests/gen/assert_memory_init.6.c | 13 + tests/gen/assert_memory_init.7.c | 11 + tests/gen/assert_memory_init.8.c | 11 + tests/gen/assert_memory_init.84.c | 16 + tests/gen/assert_memory_init.85.c | 16 + tests/gen/assert_memory_init.86.c | 16 + tests/gen/assert_memory_init.87.c | 16 + tests/gen/assert_memory_init.88.c | 16 + tests/gen/assert_memory_init.89.c | 16 + tests/gen/assert_memory_init.90.c | 11 + tests/gen/memory_init.0.wasm | Bin 0 -> 110 bytes tests/gen/memory_init.1.wasm | Bin 0 -> 122 bytes tests/gen/memory_init.10.wasm | Bin 0 -> 59 bytes tests/gen/memory_init.11.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.12.wasm | Bin 0 -> 59 bytes tests/gen/memory_init.13.wasm | Bin 0 -> 59 bytes tests/gen/memory_init.14.wasm | Bin 0 -> 60 bytes tests/gen/memory_init.15.wasm | Bin 0 -> 59 bytes tests/gen/memory_init.16.wasm | Bin 0 -> 59 bytes tests/gen/memory_init.17.wasm | Bin 0 -> 60 bytes tests/gen/memory_init.18.wasm | Bin 0 -> 60 bytes tests/gen/memory_init.19.wasm | Bin 0 -> 60 bytes tests/gen/memory_init.2.wasm | Bin 0 -> 122 bytes tests/gen/memory_init.20.wasm | Bin 0 -> 60 bytes tests/gen/memory_init.21.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.22.wasm | Bin 0 -> 58 bytes tests/gen/memory_init.23.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.24.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.25.wasm | Bin 0 -> 64 bytes tests/gen/memory_init.26.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.27.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.28.wasm | Bin 0 -> 58 bytes tests/gen/memory_init.29.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.3.wasm | Bin 0 -> 188 bytes tests/gen/memory_init.30.wasm | Bin 0 -> 58 bytes tests/gen/memory_init.31.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.32.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.33.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.34.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.35.wasm | Bin 0 -> 72 bytes tests/gen/memory_init.36.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.37.wasm | Bin 0 -> 64 bytes tests/gen/memory_init.38.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.39.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.4.wasm | Bin 0 -> 37 bytes tests/gen/memory_init.40.wasm | Bin 0 -> 64 bytes tests/gen/memory_init.41.wasm | Bin 0 -> 67 bytes tests/gen/memory_init.42.wasm | Bin 0 -> 64 bytes tests/gen/memory_init.43.wasm | Bin 0 -> 71 bytes tests/gen/memory_init.44.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.45.wasm | Bin 0 -> 64 bytes tests/gen/memory_init.46.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.47.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.48.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.49.wasm | Bin 0 -> 71 bytes tests/gen/memory_init.5.wasm | Bin 0 -> 51 bytes tests/gen/memory_init.50.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.51.wasm | Bin 0 -> 75 bytes tests/gen/memory_init.52.wasm | Bin 0 -> 58 bytes tests/gen/memory_init.53.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.54.wasm | Bin 0 -> 58 bytes tests/gen/memory_init.55.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.56.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.57.wasm | Bin 0 -> 64 bytes tests/gen/memory_init.58.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.59.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.6.wasm | Bin 0 -> 54 bytes tests/gen/memory_init.60.wasm | Bin 0 -> 58 bytes tests/gen/memory_init.61.wasm | Bin 0 -> 61 bytes tests/gen/memory_init.62.wasm | Bin 0 -> 58 bytes tests/gen/memory_init.63.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.64.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.65.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.66.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.67.wasm | Bin 0 -> 72 bytes tests/gen/memory_init.68.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.69.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.7.wasm | Bin 0 -> 62 bytes tests/gen/memory_init.70.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.71.wasm | Bin 0 -> 72 bytes tests/gen/memory_init.72.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.73.wasm | Bin 0 -> 71 bytes tests/gen/memory_init.74.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.75.wasm | Bin 0 -> 75 bytes tests/gen/memory_init.76.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.77.wasm | Bin 0 -> 68 bytes tests/gen/memory_init.78.wasm | Bin 0 -> 65 bytes tests/gen/memory_init.79.wasm | Bin 0 -> 72 bytes tests/gen/memory_init.8.wasm | Bin 0 -> 62 bytes tests/gen/memory_init.80.wasm | Bin 0 -> 72 bytes tests/gen/memory_init.81.wasm | Bin 0 -> 75 bytes tests/gen/memory_init.82.wasm | Bin 0 -> 72 bytes tests/gen/memory_init.83.wasm | Bin 0 -> 79 bytes tests/gen/memory_init.84.wasm | Bin 0 -> 136 bytes tests/gen/memory_init.85.wasm | Bin 0 -> 136 bytes tests/gen/memory_init.86.wasm | Bin 0 -> 136 bytes tests/gen/memory_init.87.wasm | Bin 0 -> 136 bytes tests/gen/memory_init.88.wasm | Bin 0 -> 135 bytes tests/gen/memory_init.89.wasm | Bin 0 -> 135 bytes tests/gen/memory_init.9.wasm | Bin 0 -> 45 bytes tests/gen/memory_init.90.wasm | Bin 0 -> 176 bytes tests/gen/memory_init.json | 242 ++++++++ tests/memory_init.wast | 967 ++++++++++++++++++++++++++++++ 118 files changed, 2127 insertions(+), 1 deletion(-) create mode 100644 tests/gen/assert_memory_init.0.c create mode 100644 tests/gen/assert_memory_init.1.c create mode 100644 tests/gen/assert_memory_init.11.c create mode 100644 tests/gen/assert_memory_init.12.c create mode 100644 tests/gen/assert_memory_init.13.c create mode 100644 tests/gen/assert_memory_init.14.c create mode 100644 tests/gen/assert_memory_init.15.c create mode 100644 tests/gen/assert_memory_init.16.c create mode 100644 tests/gen/assert_memory_init.17.c create mode 100644 tests/gen/assert_memory_init.18.c create mode 100644 tests/gen/assert_memory_init.19.c create mode 100644 tests/gen/assert_memory_init.2.c create mode 100644 tests/gen/assert_memory_init.20.c create mode 100644 tests/gen/assert_memory_init.3.c create mode 100644 tests/gen/assert_memory_init.6.c create mode 100644 tests/gen/assert_memory_init.7.c create mode 100644 tests/gen/assert_memory_init.8.c create mode 100644 tests/gen/assert_memory_init.84.c create mode 100644 tests/gen/assert_memory_init.85.c create mode 100644 tests/gen/assert_memory_init.86.c create mode 100644 tests/gen/assert_memory_init.87.c create mode 100644 tests/gen/assert_memory_init.88.c create mode 100644 tests/gen/assert_memory_init.89.c create mode 100644 tests/gen/assert_memory_init.90.c create mode 100644 tests/gen/memory_init.0.wasm create mode 100644 tests/gen/memory_init.1.wasm create mode 100644 tests/gen/memory_init.10.wasm create mode 100644 tests/gen/memory_init.11.wasm create mode 100644 tests/gen/memory_init.12.wasm create mode 100644 tests/gen/memory_init.13.wasm create mode 100644 tests/gen/memory_init.14.wasm create mode 100644 tests/gen/memory_init.15.wasm create mode 100644 tests/gen/memory_init.16.wasm create mode 100644 tests/gen/memory_init.17.wasm create mode 100644 tests/gen/memory_init.18.wasm create mode 100644 tests/gen/memory_init.19.wasm create mode 100644 tests/gen/memory_init.2.wasm create mode 100644 tests/gen/memory_init.20.wasm create mode 100644 tests/gen/memory_init.21.wasm create mode 100644 tests/gen/memory_init.22.wasm create mode 100644 tests/gen/memory_init.23.wasm create mode 100644 tests/gen/memory_init.24.wasm create mode 100644 tests/gen/memory_init.25.wasm create mode 100644 tests/gen/memory_init.26.wasm create mode 100644 tests/gen/memory_init.27.wasm create mode 100644 tests/gen/memory_init.28.wasm create mode 100644 tests/gen/memory_init.29.wasm create mode 100644 tests/gen/memory_init.3.wasm create mode 100644 tests/gen/memory_init.30.wasm create mode 100644 tests/gen/memory_init.31.wasm create mode 100644 tests/gen/memory_init.32.wasm create mode 100644 tests/gen/memory_init.33.wasm create mode 100644 tests/gen/memory_init.34.wasm create mode 100644 tests/gen/memory_init.35.wasm create mode 100644 tests/gen/memory_init.36.wasm create mode 100644 tests/gen/memory_init.37.wasm create mode 100644 tests/gen/memory_init.38.wasm create mode 100644 tests/gen/memory_init.39.wasm create mode 100644 tests/gen/memory_init.4.wasm create mode 100644 tests/gen/memory_init.40.wasm create mode 100644 tests/gen/memory_init.41.wasm create mode 100644 tests/gen/memory_init.42.wasm create mode 100644 tests/gen/memory_init.43.wasm create mode 100644 tests/gen/memory_init.44.wasm create mode 100644 tests/gen/memory_init.45.wasm create mode 100644 tests/gen/memory_init.46.wasm create mode 100644 tests/gen/memory_init.47.wasm create mode 100644 tests/gen/memory_init.48.wasm create mode 100644 tests/gen/memory_init.49.wasm create mode 100644 tests/gen/memory_init.5.wasm create mode 100644 tests/gen/memory_init.50.wasm create mode 100644 tests/gen/memory_init.51.wasm create mode 100644 tests/gen/memory_init.52.wasm create mode 100644 tests/gen/memory_init.53.wasm create mode 100644 tests/gen/memory_init.54.wasm create mode 100644 tests/gen/memory_init.55.wasm create mode 100644 tests/gen/memory_init.56.wasm create mode 100644 tests/gen/memory_init.57.wasm create mode 100644 tests/gen/memory_init.58.wasm create mode 100644 tests/gen/memory_init.59.wasm create mode 100644 tests/gen/memory_init.6.wasm create mode 100644 tests/gen/memory_init.60.wasm create mode 100644 tests/gen/memory_init.61.wasm create mode 100644 tests/gen/memory_init.62.wasm create mode 100644 tests/gen/memory_init.63.wasm create mode 100644 tests/gen/memory_init.64.wasm create mode 100644 tests/gen/memory_init.65.wasm create mode 100644 tests/gen/memory_init.66.wasm create mode 100644 tests/gen/memory_init.67.wasm create mode 100644 tests/gen/memory_init.68.wasm create mode 100644 tests/gen/memory_init.69.wasm create mode 100644 tests/gen/memory_init.7.wasm create mode 100644 tests/gen/memory_init.70.wasm create mode 100644 tests/gen/memory_init.71.wasm create mode 100644 tests/gen/memory_init.72.wasm create mode 100644 tests/gen/memory_init.73.wasm create mode 100644 tests/gen/memory_init.74.wasm create mode 100644 tests/gen/memory_init.75.wasm create mode 100644 tests/gen/memory_init.76.wasm create mode 100644 tests/gen/memory_init.77.wasm create mode 100644 tests/gen/memory_init.78.wasm create mode 100644 tests/gen/memory_init.79.wasm create mode 100644 tests/gen/memory_init.8.wasm create mode 100644 tests/gen/memory_init.80.wasm create mode 100644 tests/gen/memory_init.81.wasm create mode 100644 tests/gen/memory_init.82.wasm create mode 100644 tests/gen/memory_init.83.wasm create mode 100644 tests/gen/memory_init.84.wasm create mode 100644 tests/gen/memory_init.85.wasm create mode 100644 tests/gen/memory_init.86.wasm create mode 100644 tests/gen/memory_init.87.wasm create mode 100644 tests/gen/memory_init.88.wasm create mode 100644 tests/gen/memory_init.89.wasm create mode 100644 tests/gen/memory_init.9.wasm create mode 100644 tests/gen/memory_init.90.wasm create mode 100644 tests/gen/memory_init.json create mode 100644 tests/memory_init.wast diff --git a/tests/gen.py b/tests/gen.py index f66052b..b71b80f 100644 --- a/tests/gen.py +++ b/tests/gen.py @@ -195,7 +195,12 @@ def gen(paths): wast2json_version = subprocess.check_output(['wast2json', '--version']).decode('utf-8').strip() has_new_wabt = compare_versions(wast2json_version, "1.0.25") > 0 - memory_files = {'memory_copy.wast', 'memory_fill.wast', 'bulk.wast'} + memory_files = { + 'memory_copy.wast', + 'memory_fill.wast', + 'memory_init.wast', + 'bulk.wast' + } for wast_path in paths: print(wast_path) diff --git a/tests/gen/assert_memory_init.0.c b/tests/gen/assert_memory_init.0.c new file mode 100644 index 0000000..48251dc --- /dev/null +++ b/tests/gen/assert_memory_init.0.c @@ -0,0 +1,163 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.0.h" + +void test() { + memoryinit0Instance instance; + memoryinit0Instantiate(&instance, resolveTestImports); + printStart("memory_init.0.wasm"); + memoryinit0_test(&instance); + printOK("test()"); + assertEqualU32( + memoryinit0_load8_u(&instance, 0u), + 0u, + "load8_u(0u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 1u), + 0u, + "load8_u(1u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 2u), + 3u, + "load8_u(2u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 3u), + 1u, + "load8_u(3u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 4u), + 4u, + "load8_u(4u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 5u), + 1u, + "load8_u(5u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 6u), + 0u, + "load8_u(6u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 7u), + 0u, + "load8_u(7u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 8u), + 0u, + "load8_u(8u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 9u), + 0u, + "load8_u(9u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 10u), + 0u, + "load8_u(10u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 11u), + 0u, + "load8_u(11u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 12u), + 7u, + "load8_u(12u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 13u), + 5u, + "load8_u(13u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 14u), + 2u, + "load8_u(14u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 15u), + 3u, + "load8_u(15u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 16u), + 6u, + "load8_u(16u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 17u), + 0u, + "load8_u(17u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 18u), + 0u, + "load8_u(18u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 19u), + 0u, + "load8_u(19u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 20u), + 0u, + "load8_u(20u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 21u), + 0u, + "load8_u(21u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 22u), + 0u, + "load8_u(22u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 23u), + 0u, + "load8_u(23u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 24u), + 0u, + "load8_u(24u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 25u), + 0u, + "load8_u(25u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 26u), + 0u, + "load8_u(26u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 27u), + 0u, + "load8_u(27u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 28u), + 0u, + "load8_u(28u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 29u), + 0u, + "load8_u(29u)" + ); +} diff --git a/tests/gen/assert_memory_init.1.c b/tests/gen/assert_memory_init.1.c new file mode 100644 index 0000000..87827d3 --- /dev/null +++ b/tests/gen/assert_memory_init.1.c @@ -0,0 +1,163 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.1.h" + +void test() { + memoryinit1Instance instance; + memoryinit1Instantiate(&instance, resolveTestImports); + printStart("memory_init.1.wasm"); + memoryinit1_test(&instance); + printOK("test()"); + assertEqualU32( + memoryinit1_load8_u(&instance, 0u), + 0u, + "load8_u(0u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 1u), + 0u, + "load8_u(1u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 2u), + 3u, + "load8_u(2u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 3u), + 1u, + "load8_u(3u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 4u), + 4u, + "load8_u(4u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 5u), + 1u, + "load8_u(5u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 6u), + 0u, + "load8_u(6u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 7u), + 2u, + "load8_u(7u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 8u), + 7u, + "load8_u(8u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 9u), + 1u, + "load8_u(9u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 10u), + 8u, + "load8_u(10u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 11u), + 0u, + "load8_u(11u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 12u), + 7u, + "load8_u(12u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 13u), + 5u, + "load8_u(13u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 14u), + 2u, + "load8_u(14u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 15u), + 3u, + "load8_u(15u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 16u), + 6u, + "load8_u(16u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 17u), + 0u, + "load8_u(17u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 18u), + 0u, + "load8_u(18u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 19u), + 0u, + "load8_u(19u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 20u), + 0u, + "load8_u(20u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 21u), + 0u, + "load8_u(21u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 22u), + 0u, + "load8_u(22u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 23u), + 0u, + "load8_u(23u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 24u), + 0u, + "load8_u(24u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 25u), + 0u, + "load8_u(25u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 26u), + 0u, + "load8_u(26u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 27u), + 0u, + "load8_u(27u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 28u), + 0u, + "load8_u(28u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 29u), + 0u, + "load8_u(29u)" + ); +} diff --git a/tests/gen/assert_memory_init.11.c b/tests/gen/assert_memory_init.11.c new file mode 100644 index 0000000..a0e2e81 --- /dev/null +++ b/tests/gen/assert_memory_init.11.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.11.h" + +void test() { + memoryinit11Instance instance; + memoryinit11Instantiate(&instance, resolveTestImports); + printStart("memory_init.11.wasm"); + memoryinit11_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.12.c b/tests/gen/assert_memory_init.12.c new file mode 100644 index 0000000..a7a6106 --- /dev/null +++ b/tests/gen/assert_memory_init.12.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.12.h" + +void test() { + memoryinit12Instance instance; + memoryinit12Instantiate(&instance, resolveTestImports); + printStart("memory_init.12.wasm"); +} diff --git a/tests/gen/assert_memory_init.13.c b/tests/gen/assert_memory_init.13.c new file mode 100644 index 0000000..819d32a --- /dev/null +++ b/tests/gen/assert_memory_init.13.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.13.h" + +void test() { + memoryinit13Instance instance; + memoryinit13Instantiate(&instance, resolveTestImports); + printStart("memory_init.13.wasm"); +} diff --git a/tests/gen/assert_memory_init.14.c b/tests/gen/assert_memory_init.14.c new file mode 100644 index 0000000..5ba0d5c --- /dev/null +++ b/tests/gen/assert_memory_init.14.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.14.h" + +void test() { + memoryinit14Instance instance; + memoryinit14Instantiate(&instance, resolveTestImports); + printStart("memory_init.14.wasm"); +} diff --git a/tests/gen/assert_memory_init.15.c b/tests/gen/assert_memory_init.15.c new file mode 100644 index 0000000..526ab3b --- /dev/null +++ b/tests/gen/assert_memory_init.15.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.15.h" + +void test() { + memoryinit15Instance instance; + memoryinit15Instantiate(&instance, resolveTestImports); + printStart("memory_init.15.wasm"); +} diff --git a/tests/gen/assert_memory_init.16.c b/tests/gen/assert_memory_init.16.c new file mode 100644 index 0000000..4c2d6b8 --- /dev/null +++ b/tests/gen/assert_memory_init.16.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.16.h" + +void test() { + memoryinit16Instance instance; + memoryinit16Instantiate(&instance, resolveTestImports); + printStart("memory_init.16.wasm"); + memoryinit16_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.17.c b/tests/gen/assert_memory_init.17.c new file mode 100644 index 0000000..64b8d8c --- /dev/null +++ b/tests/gen/assert_memory_init.17.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.17.h" + +void test() { + memoryinit17Instance instance; + memoryinit17Instantiate(&instance, resolveTestImports); + printStart("memory_init.17.wasm"); +} diff --git a/tests/gen/assert_memory_init.18.c b/tests/gen/assert_memory_init.18.c new file mode 100644 index 0000000..f42d4ee --- /dev/null +++ b/tests/gen/assert_memory_init.18.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.18.h" + +void test() { + memoryinit18Instance instance; + memoryinit18Instantiate(&instance, resolveTestImports); + printStart("memory_init.18.wasm"); + memoryinit18_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.19.c b/tests/gen/assert_memory_init.19.c new file mode 100644 index 0000000..00d9185 --- /dev/null +++ b/tests/gen/assert_memory_init.19.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.19.h" + +void test() { + memoryinit19Instance instance; + memoryinit19Instantiate(&instance, resolveTestImports); + printStart("memory_init.19.wasm"); + memoryinit19_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.2.c b/tests/gen/assert_memory_init.2.c new file mode 100644 index 0000000..21c5190 --- /dev/null +++ b/tests/gen/assert_memory_init.2.c @@ -0,0 +1,163 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.2.h" + +void test() { + memoryinit2Instance instance; + memoryinit2Instantiate(&instance, resolveTestImports); + printStart("memory_init.2.wasm"); + memoryinit2_test(&instance); + printOK("test()"); + assertEqualU32( + memoryinit2_load8_u(&instance, 0u), + 0u, + "load8_u(0u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 1u), + 0u, + "load8_u(1u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 2u), + 3u, + "load8_u(2u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 3u), + 1u, + "load8_u(3u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 4u), + 4u, + "load8_u(4u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 5u), + 1u, + "load8_u(5u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 6u), + 0u, + "load8_u(6u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 7u), + 0u, + "load8_u(7u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 8u), + 0u, + "load8_u(8u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 9u), + 0u, + "load8_u(9u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 10u), + 0u, + "load8_u(10u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 11u), + 0u, + "load8_u(11u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 12u), + 7u, + "load8_u(12u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 13u), + 5u, + "load8_u(13u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 14u), + 2u, + "load8_u(14u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 15u), + 9u, + "load8_u(15u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 16u), + 2u, + "load8_u(16u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 17u), + 7u, + "load8_u(17u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 18u), + 0u, + "load8_u(18u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 19u), + 0u, + "load8_u(19u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 20u), + 0u, + "load8_u(20u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 21u), + 0u, + "load8_u(21u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 22u), + 0u, + "load8_u(22u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 23u), + 0u, + "load8_u(23u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 24u), + 0u, + "load8_u(24u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 25u), + 0u, + "load8_u(25u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 26u), + 0u, + "load8_u(26u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 27u), + 0u, + "load8_u(27u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 28u), + 0u, + "load8_u(28u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 29u), + 0u, + "load8_u(29u)" + ); +} diff --git a/tests/gen/assert_memory_init.20.c b/tests/gen/assert_memory_init.20.c new file mode 100644 index 0000000..c31e211 --- /dev/null +++ b/tests/gen/assert_memory_init.20.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.20.h" + +void test() { + memoryinit20Instance instance; + memoryinit20Instantiate(&instance, resolveTestImports); + printStart("memory_init.20.wasm"); +} diff --git a/tests/gen/assert_memory_init.3.c b/tests/gen/assert_memory_init.3.c new file mode 100644 index 0000000..25f5ddc --- /dev/null +++ b/tests/gen/assert_memory_init.3.c @@ -0,0 +1,163 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.3.h" + +void test() { + memoryinit3Instance instance; + memoryinit3Instantiate(&instance, resolveTestImports); + printStart("memory_init.3.wasm"); + memoryinit3_test(&instance); + printOK("test()"); + assertEqualU32( + memoryinit3_load8_u(&instance, 0u), + 0u, + "load8_u(0u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 1u), + 0u, + "load8_u(1u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 2u), + 3u, + "load8_u(2u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 3u), + 1u, + "load8_u(3u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 4u), + 4u, + "load8_u(4u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 5u), + 1u, + "load8_u(5u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 6u), + 0u, + "load8_u(6u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 7u), + 2u, + "load8_u(7u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 8u), + 7u, + "load8_u(8u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 9u), + 1u, + "load8_u(9u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 10u), + 8u, + "load8_u(10u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 11u), + 0u, + "load8_u(11u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 12u), + 7u, + "load8_u(12u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 13u), + 0u, + "load8_u(13u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 14u), + 7u, + "load8_u(14u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 15u), + 5u, + "load8_u(15u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 16u), + 2u, + "load8_u(16u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 17u), + 7u, + "load8_u(17u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 18u), + 0u, + "load8_u(18u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 19u), + 9u, + "load8_u(19u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 20u), + 0u, + "load8_u(20u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 21u), + 7u, + "load8_u(21u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 22u), + 0u, + "load8_u(22u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 23u), + 8u, + "load8_u(23u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 24u), + 8u, + "load8_u(24u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 25u), + 0u, + "load8_u(25u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 26u), + 0u, + "load8_u(26u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 27u), + 0u, + "load8_u(27u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 28u), + 0u, + "load8_u(28u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 29u), + 0u, + "load8_u(29u)" + ); +} diff --git a/tests/gen/assert_memory_init.6.c b/tests/gen/assert_memory_init.6.c new file mode 100644 index 0000000..b34e0e3 --- /dev/null +++ b/tests/gen/assert_memory_init.6.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.6.h" + +void test() { + memoryinit6Instance instance; + memoryinit6Instantiate(&instance, resolveTestImports); + printStart("memory_init.6.wasm"); + memoryinit6_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.7.c b/tests/gen/assert_memory_init.7.c new file mode 100644 index 0000000..73c2618 --- /dev/null +++ b/tests/gen/assert_memory_init.7.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.7.h" + +void test() { + memoryinit7Instance instance; + memoryinit7Instantiate(&instance, resolveTestImports); + printStart("memory_init.7.wasm"); +} diff --git a/tests/gen/assert_memory_init.8.c b/tests/gen/assert_memory_init.8.c new file mode 100644 index 0000000..c431acb --- /dev/null +++ b/tests/gen/assert_memory_init.8.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.8.h" + +void test() { + memoryinit8Instance instance; + memoryinit8Instantiate(&instance, resolveTestImports); + printStart("memory_init.8.wasm"); +} diff --git a/tests/gen/assert_memory_init.84.c b/tests/gen/assert_memory_init.84.c new file mode 100644 index 0000000..350bb25 --- /dev/null +++ b/tests/gen/assert_memory_init.84.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.84.h" + +void test() { + memoryinit84Instance instance; + memoryinit84Instantiate(&instance, resolveTestImports); + printStart("memory_init.84.wasm"); + assertEqualU32( + memoryinit84_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.85.c b/tests/gen/assert_memory_init.85.c new file mode 100644 index 0000000..da18808 --- /dev/null +++ b/tests/gen/assert_memory_init.85.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.85.h" + +void test() { + memoryinit85Instance instance; + memoryinit85Instantiate(&instance, resolveTestImports); + printStart("memory_init.85.wasm"); + assertEqualU32( + memoryinit85_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.86.c b/tests/gen/assert_memory_init.86.c new file mode 100644 index 0000000..2c583d3 --- /dev/null +++ b/tests/gen/assert_memory_init.86.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.86.h" + +void test() { + memoryinit86Instance instance; + memoryinit86Instantiate(&instance, resolveTestImports); + printStart("memory_init.86.wasm"); + assertEqualU32( + memoryinit86_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.87.c b/tests/gen/assert_memory_init.87.c new file mode 100644 index 0000000..25896d8 --- /dev/null +++ b/tests/gen/assert_memory_init.87.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.87.h" + +void test() { + memoryinit87Instance instance; + memoryinit87Instantiate(&instance, resolveTestImports); + printStart("memory_init.87.wasm"); + assertEqualU32( + memoryinit87_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.88.c b/tests/gen/assert_memory_init.88.c new file mode 100644 index 0000000..0acbbe2 --- /dev/null +++ b/tests/gen/assert_memory_init.88.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.88.h" + +void test() { + memoryinit88Instance instance; + memoryinit88Instantiate(&instance, resolveTestImports); + printStart("memory_init.88.wasm"); + assertEqualU32( + memoryinit88_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.89.c b/tests/gen/assert_memory_init.89.c new file mode 100644 index 0000000..4df709d --- /dev/null +++ b/tests/gen/assert_memory_init.89.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.89.h" + +void test() { + memoryinit89Instance instance; + memoryinit89Instantiate(&instance, resolveTestImports); + printStart("memory_init.89.wasm"); + assertEqualU32( + memoryinit89_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.90.c b/tests/gen/assert_memory_init.90.c new file mode 100644 index 0000000..340b501 --- /dev/null +++ b/tests/gen/assert_memory_init.90.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.90.h" + +void test() { + memoryinit90Instance instance; + memoryinit90Instantiate(&instance, resolveTestImports); + printStart("memory_init.90.wasm"); +} diff --git a/tests/gen/memory_init.0.wasm b/tests/gen/memory_init.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a72bf6108bdf6241d9da75e375f1f9e9793c9a2c GIT binary patch literal 110 zcmWN|I}Uy&0o{0t yyGEJI^4*^T+varx;-__pn<$up77rk^GxUt`h Jp;;&1`~fjA4oUz3 literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.10.wasm b/tests/gen/memory_init.10.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5287d0b5d9e70236db2b2b23cf8b9b226d40e337 GIT binary patch literal 59 zcmV~$F%m#96hOiEBt{71IO=~B3Z*JJsq-l8a#*p&xl*m4 KC-Yk=q3$pKa0j{o literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.12.wasm b/tests/gen/memory_init.12.wasm new file mode 100644 index 0000000000000000000000000000000000000000..26397b3db18e2ea90f4cb59ea59f127aac113d3d GIT binary patch literal 59 zcmV~$u@QhE006OnffGf~aje+{3rj1Q)OjpSxcVbtv_Y681#!;CarXh6u7^AIT`Dzw J8A^%j`2)b-2E70P literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.13.wasm b/tests/gen/memory_init.13.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d046a8d4c445f6b298db54a582a97283d9539170 GIT binary patch literal 59 zcmV~$u@QhE006Onz!OE!aje+{3rj1Q)OjpSxcVbtvOx?oMRCriarXh6u7^AIU23TD J%TP*E&mX|z2E70P literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.14.wasm b/tests/gen/memory_init.14.wasm new file mode 100644 index 0000000000000000000000000000000000000000..51d80802ad860e633658a9468f0429ce5a61a195 GIT binary patch literal 60 zcmV~$K@LDL6hOiE{E9|J+{U^$VPR?29$zrS*=_-o2gD#_h*LK8t94j(-dw5g7u6b1 IhEkHc|Ji&8;{X5v literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.15.wasm b/tests/gen/memory_init.15.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ccef7041003619c63d21498b71834e5d7587eb09 GIT binary patch literal 59 zcmV~$F%m#96hOiEJJ+au J8A=KD_yNG$2D|_O literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.16.wasm b/tests/gen/memory_init.16.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ab456e0297f8c3704b4ade9c6ef6f5988d819c75 GIT binary patch literal 59 zcmV~$F%m#96hOiEBt{71IO=~B3Z*JJsq-l8axc~qF literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.17.wasm b/tests/gen/memory_init.17.wasm new file mode 100644 index 0000000000000000000000000000000000000000..95585f37752e7a0a748f2fda40143a826b0acb5d GIT binary patch literal 60 zcmV~$F%m#96hOiE~gkS!0>=H$e6?_8~th>7M(X&>ia~c K@?|I`)cps@AqM0C literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.18.wasm b/tests/gen/memory_init.18.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d27974d47dfdb2a61e63fe1bd616a1e42904de0d GIT binary patch literal 60 zcmV~$u?>JA6hOiE`J$(+O`8~te=HeC;Q>KIX} Kd>Kj!_51JA6hOiE`J$(+O`8~te=HeC;Q>KIY2 Kd>Kj!_51h9b$7`(qMpQF8Kd K(T47wMDqtTHV#w( literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.20.wasm b/tests/gen/memory_init.20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3b5e9d26b14bb0eb29c6f4e4cc50721e73bcb339 GIT binary patch literal 60 zcmV~$F%m#96hOiE~gkS!0>=H$e6?_8~th>7M(X&>ia~E K%9o*(Q1>6mSqA6; literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.21.wasm b/tests/gen/memory_init.21.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9d671463bfe501e0e96cc00eb03f6a170dec29ca GIT binary patch literal 61 zcmV~$u?>JA006;%!AQi!IE|$tETV;_6%63u7T$5SN5JR_VURJ1Q!@6uby#%XTqzbS LyvLUy=cw*K#lQxn literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.22.wasm b/tests/gen/memory_init.22.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c3ce5b7146ce8a8aad91e2cd6d746004ae1ae479 GIT binary patch literal 58 zcmV~$F%Ezr5CFklIU^C`cdYRxSXf%Y^DUg=9JA006;%!AQi!IE|$tETV;_6%63u7T$5SN5JR_VURJ1Q!@6uby#%XTq#y~ LkK&gg=cw*K#(D;% literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.25.wasm b/tests/gen/memory_init.25.wasm new file mode 100644 index 0000000000000000000000000000000000000000..dcf889e779a3cb580c5bacef34f9e8498a3c83e7 GIT binary patch literal 64 zcmW;6F%Cd506@|IwW3jzxQkI57hy1(+5IjZXq#)k%_ literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.27.wasm b/tests/gen/memory_init.27.wasm new file mode 100644 index 0000000000000000000000000000000000000000..bec609adf5c69b8238c728ccf9492dca530acd54 GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3IK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! Ry1}#T!_2^-89D+$ z1=m1L6HOuv@{W>pC)%}L|N5L6Zfu7U&}ZK~F84R6B3It{3R8o*m=j__wlp${xg;aD zPS(c~u#N4FX4+c$r-g;I`=zVYoO?lWzzGQ9=wKY2PTL+Y>+0IlelDK+2wVUF literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.36.wasm b/tests/gen/memory_init.36.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2ebb242c8e473fb5dacd2918988c4f931f3c4b00 GIT binary patch literal 61 zcmV~$u?>JA006;%!AQi!IE|$tETV;_6%63u7T$5SN5JR_VURJ1Q!@6uby#%XT&eIL L#p0JB=cw*K$210{ literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.37.wasm b/tests/gen/memory_init.37.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5302466338ffc97fd64d841cf74051e97fd43b05 GIT binary patch literal 64 zcmW;7F%Cd506@|IwW3jzxQkI57hy1(+59ZVPN25XJlpg!^yx6094lmssI20 literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.40.wasm b/tests/gen/memory_init.40.wasm new file mode 100644 index 0000000000000000000000000000000000000000..468ef9ec9b1cefa297ed22f1d42e1c70e3983d1f GIT binary patch literal 64 zcmW;6F%Cd506@|IwW3jzxQkI57hy1(+5j`Ps@|dX~3?7=t>09h(TL literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.44.wasm b/tests/gen/memory_init.44.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6ebd63205485eb89c08751505ba58983072c9bdd GIT binary patch literal 61 zcmV~$F%Cd506@|IwW3jpIE_)tMHq~x_5coU@E%uv1dN^#I_ZNrBxAd4gGtB5nFHQ! LxA-NJA006;%!AQi!IE|$VETV;_6%63u7T$5SN5JR_VURJ1Q!@6uby#%XT&eIL L#p0JB=cw*K$4~~Q literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.47.wasm b/tests/gen/memory_init.47.wasm new file mode 100644 index 0000000000000000000000000000000000000000..87e9f4e9043cbc91f9c3395756071e4513fd3ad9 GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3BK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! R!LzLH@~ literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.5.wasm b/tests/gen/memory_init.5.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2fb1cbcd2278a2e2bd4ef1437a981b48cf5f1132 GIT binary patch literal 51 zcmV~$u@QhE5CFkDc?J;su^kNzji7u2c6rAyVE8~fBqy;{V}4`8rDrj-TJ#?3y#a=| B1rGoK literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.50.wasm b/tests/gen/memory_init.50.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a642fd7be86b29c213f744e789b1cd9636c1e7cc GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3BK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! R!L#gT7Von9br54v=O6vr2jl<% literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.51.wasm b/tests/gen/memory_init.51.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3dbc71e1c15cafeacda973004110b5d76ada3c7a GIT binary patch literal 75 zcmZQbEY4+QU|?WmVN76PU}j=uU}a`xU}WcDWGP84E@5EcVPxczXOv}dW?*QrcLAyd Tf)5DB9}WfvZf+JvMn-c0Jp2hF literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.52.wasm b/tests/gen/memory_init.52.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a40632da421fa2c55323bfe6d0fc5c1bc9df3352 GIT binary patch literal 58 zcmWNTL+Y>+0IlelDK+JA006;%!AQi!IE|$VETV;_6%63u7T$5SN5JR_VURJ1Q!@6uby#%XTq#y~ LkK&gg=cw*K#+wGF literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.59.wasm b/tests/gen/memory_init.59.wasm new file mode 100644 index 0000000000000000000000000000000000000000..912558bce6f06fee0c3f3372778d9b16815b2213 GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3BK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! Ry1}#T5X_GyPM>a<511>Ga%sl_KhI%ib CMFtiC literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.60.wasm b/tests/gen/memory_init.60.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6cfa4f7e43680cf5a86031027a999a4b7bd0ddf9 GIT binary patch literal 58 zcmV~$F%Ezr5CFklIU^C`cdX?lSXf%Y^DUg=9JA006;%!AQi!IE|$VETV;_6%63u7T$5SN5JR_VURJ1Q!@6uby#%XTqzbS LyvLUy=cw*K#pVX4 literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.62.wasm b/tests/gen/memory_init.62.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f8f2203c2f7ff76825251f9830db4e81367d43c3 GIT binary patch literal 58 zcmWl{F%Ezr5CFklIU@n$ckF$M7M4`-d<$b{xJMT-ydW*ICUMKge8z;PWw&wqdo$D; G>hS@tOa^C literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.65.wasm b/tests/gen/memory_init.65.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a07bcc7fb7d4e4102ce419997c3ac4cb1efabc3c GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3BK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! Rx|deG%LdQ#br54v=O6mV2jl<% literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.66.wasm b/tests/gen/memory_init.66.wasm new file mode 100644 index 0000000000000000000000000000000000000000..88bdb2c3282d0c6828b626efdf3dde895e79114c GIT binary patch literal 65 zcmWN{F%Cd506@|IwW3j*IEzuzI0%E$)E?Xc47~Yq)?2{n0ilyVh(j{At2UT)T%0NH OfBQXK@lB9(RM!vRNe3SQ literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.67.wasm b/tests/gen/memory_init.67.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f8e1a8f7effe0a6860f7342fec6c9bdf40b80e5c GIT binary patch literal 72 zcmZQbEY4+QU|?WmVN76PU}j=uU}a`xU}WcDWGP84E@5EcVPxczVU%KUVsrs21A-6s RaK;}F1_o|!7Dh%!a{w6L2weaG literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.68.wasm b/tests/gen/memory_init.68.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d4aa510a3aa90b620c4f0080d864de7a6239a5fc GIT binary patch literal 65 zcmWN{F%Cd506@|IwW3j*IEzu5I0%E$)E?Xc47~Yq)?2{n0ilyVh(j{At2UT)T%6he O^n12q@lB9(RM!vRxCb2o literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.69.wasm b/tests/gen/memory_init.69.wasm new file mode 100644 index 0000000000000000000000000000000000000000..12368506e44dc950e6ea13ae30b10664eec4fac7 GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3IK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! RmsGsV>ITp9br54v=O6n(2jc($ literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.7.wasm b/tests/gen/memory_init.7.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3c1d05f7d4b6f2d4580b34b44513f061ccc2b996 GIT binary patch literal 62 zcmV~$u@QhE006On!4t&7a~W$k(ZbRSCUqVP6Ylm37`-4&G6!)<#{RSpo34jDBU8Uz Lt&RkxMD_du;qnK? literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.70.wasm b/tests/gen/memory_init.70.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ade47939686cdec6f346deedf1228704d2c67a0a GIT binary patch literal 65 zcmWN{F%Cd506@|IwW3j*IEzt;gD@CP?ZF+uz?&auxdn_K5E^NN*d=4VN`*oD$&vj} Ozh_z9d=umx)%gS8#Rnb$ literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.71.wasm b/tests/gen/memory_init.71.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3c5e92650bff2126be418313f2e108063a1388d4 GIT binary patch literal 72 zcmZQbEY4+QU|?WmVN76PU}j=uU}a`xU}WcDWGP84E@5EcVPxczVU%KU0V)E55B83X RaONKl1_o|!7Dh%!a{w7r2wVUF literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.72.wasm b/tests/gen/memory_init.72.wasm new file mode 100644 index 0000000000000000000000000000000000000000..234d72239604fb9682057c97227dc3d1894c717d GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3IK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! RmsGsV2G6qkbr54v=O6p}2jc($ literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.73.wasm b/tests/gen/memory_init.73.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b155c303c9daa94bd236839e5b685f724fa19f8c GIT binary patch literal 71 zcmZQbEY4+QU|?WmVN76PU}j=uU}a`xU}WcDWGP84E@5EcVPxczW|U-b0V)E55BAOs T3=I(C4+jGSH#Z9-BcnM08TAOM literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.74.wasm b/tests/gen/memory_init.74.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8fc73e1f6a0e1788255f02bb7c85e018b4d6f91e GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3BK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! RmsGsV2G6qkbr54v=O6qB2jl<% literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.75.wasm b/tests/gen/memory_init.75.wasm new file mode 100644 index 0000000000000000000000000000000000000000..264cd318bb3955c4235c2ed734db424605ec81e6 GIT binary patch literal 75 zcmZQbEY4+QU|?WmVN76PU}j=uU}a`xU}WcDWGP84E@5EcVPxczXOv}d0V)E55BAOs U3=Q^h-X9JI25xQ^Mn*<+06QrOA^-pY literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.76.wasm b/tests/gen/memory_init.76.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0fac0522d336e502388ae399dd857f9eb2d8ff00 GIT binary patch literal 65 zcmWN{F%Cd506@|IwW3j*IEzt;gD@CP?ZF+uz?&auxdn_K5E^NN*d=4VN`*oD$&vj} Ozh~K8eG}vy)%gS8#|It& literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.77.wasm b/tests/gen/memory_init.77.wasm new file mode 100644 index 0000000000000000000000000000000000000000..99f98b117b61beabfe5f9aaee25b8075d819b743 GIT binary patch literal 68 zcmWN{u@OKp06@|IiQ`1=Y@&3BK`4}}WB?-@Kq0Swoaq)YctBlAQ;Th9$XCiRXg@i! RmsGsV>ITp9br54v=O6o02jl<% literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.78.wasm b/tests/gen/memory_init.78.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6cdb1c0bc1440364e7b968d7ace15005c313bc6c GIT binary patch literal 65 zcmWN{F%Cd506@|IwW3j*IEzuzI0%E$)E?Xc47~Yq)?2{n0ilyVh(j{At2UT)T%6he O^n12q@lB9(RM!vR)CV5` literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.79.wasm b/tests/gen/memory_init.79.wasm new file mode 100644 index 0000000000000000000000000000000000000000..68a36d90ef7bd84a676a9081d9835d4414b4b828 GIT binary patch literal 72 zcmZQbEY4+QU|?WmVN76PU}j=uU}a`xU}WcDWGP84E@5EcVPxczVU%KU0V)E55B5%s RaONKl1_o|!7Dh%!a{w7>2weaG literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.8.wasm b/tests/gen/memory_init.8.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e19033dd791ff455cd132e8e19b9d0e6b43cd887 GIT binary patch literal 62 zcmV~$F%m#96hOiEBqkw@;Y+zF^Q#`pQ}Hx=)AcS?-Yh# Kh1QA$&HV?}x(5gV literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.80.wasm b/tests/gen/memory_init.80.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1afbfb5dec6816538eea0543318bef0f374d20c7 GIT binary patch literal 72 zcmZQbEY4+QU|?WmVN76PU}j=uU}a`xU}WcDWGP84E@5EcVPxczVU%KU0V)E55B6|| RBjXjQw0V)E55B8Xh PKO77U+}tdTjEv?0T#gBw literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.84.wasm b/tests/gen/memory_init.84.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a3cd4ff2df8625fa605176aeea31c3b54ad179c9 GIT binary patch literal 136 zcmZ9CF%E)I5Cz}c#c0@XFwq07l@+ZuSa<+W03k%8kwRm=7q{ToPB)W5|9KGrx6)}u zFgl5Vs(`D4ne{=+VH$_$t)K5BpzrStCbB%s3EDWE*P>~oGDi)#WOKB99Fb@_R+f-M N{(c+4Y)|eke=Ny66(axu literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.85.wasm b/tests/gen/memory_init.85.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a3cd4ff2df8625fa605176aeea31c3b54ad179c9 GIT binary patch literal 136 zcmZ9CF%E)I5Cz}c#c0@XFwq07l@+ZuSa<+W03k%8kwRm=7q{ToPB)W5|9KGrx6)}u zFgl5Vs(`D4ne{=+VH$_$t)K5BpzrStCbB%s3EDWE*P>~oGDi)#WOKB99Fb@_R+f-M N{(c+4Y)|eke=Ny66(axu literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.86.wasm b/tests/gen/memory_init.86.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a3cd4ff2df8625fa605176aeea31c3b54ad179c9 GIT binary patch literal 136 zcmZ9CF%E)I5Cz}c#c0@XFwq07l@+ZuSa<+W03k%8kwRm=7q{ToPB)W5|9KGrx6)}u zFgl5Vs(`D4ne{=+VH$_$t)K5BpzrStCbB%s3EDWE*P>~oGDi)#WOKB99Fb@_R+f-M N{(c+4Y)|eke=Ny66(axu literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.87.wasm b/tests/gen/memory_init.87.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a3cd4ff2df8625fa605176aeea31c3b54ad179c9 GIT binary patch literal 136 zcmZ9CF%E)I5Cz}c#c0@XFwq07l@+ZuSa<+W03k%8kwRm=7q{ToPB)W5|9KGrx6)}u zFgl5Vs(`D4ne{=+VH$_$t)K5BpzrStCbB%s3EDWE*P>~oGDi)#WOKB99Fb@_R+f-M N{(c+4Y)|eke=Ny66(axu literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.88.wasm b/tests/gen/memory_init.88.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8071fef6286a0709f8e73f6fc971d6532f3573ae GIT binary patch literal 135 zcmZ9CF%E)I5Cz}c)o9pnFp&eSm6a_uSa<+W03k#pkwRm=7q{ToPB)W5|9KGrchYG@ zFgl5Vs(@=HxT&NV9^)|G`uRQr`u@&fB8ys1(8l4su9`MVbDRN}Y>t-CBN8pg(h_pW N-){?;9mxIVj|IZo6(9fr literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.89.wasm b/tests/gen/memory_init.89.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8071fef6286a0709f8e73f6fc971d6532f3573ae GIT binary patch literal 135 zcmZ9CF%E)I5Cz}c)o9pnFp&eSm6a_uSa<+W03k#pkwRm=7q{ToPB)W5|9KGrchYG@ zFgl5Vs(@=HxT&NV9^)|G`uRQr`u@&fB8ys1(8l4su9`MVbDRN}Y>t-CBN8pg(h_pW N-){?;9mxIVj|IZo6(9fr literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.9.wasm b/tests/gen/memory_init.9.wasm new file mode 100644 index 0000000000000000000000000000000000000000..aebc7715c6864cc8b30a44a7e89a7648ab584f59 GIT binary patch literal 45 zcmZQbEY4+QU|?WmVN76PU}j=uVCP_DDM>9ZVPN3mXXIsYyu|6q=*akogOPz70E8t5 AS^xk5 literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.90.wasm b/tests/gen/memory_init.90.wasm new file mode 100644 index 0000000000000000000000000000000000000000..31e43458fd471dbe8dea343d3142c2632f93b6d0 GIT binary patch literal 176 zcmZQbEY4+QU|?WmVN76PU}j=uU}a`xVB}$RV)KO7DW+}zEKjzF0Kh5!j| B1y29~ literal 0 HcmV?d00001 diff --git a/tests/gen/memory_init.json b/tests/gen/memory_init.json new file mode 100644 index 0000000..d31cd94 --- /dev/null +++ b/tests/gen/memory_init.json @@ -0,0 +1,242 @@ +{"source_filename": "memory_init.wast", + "commands": [ + {"type": "module", "line": 6, "filename": "memory_init.0.wasm"}, + {"type": "action", "line": 17, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "assert_return", "line": 19, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 20, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 21, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 22, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 23, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 24, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 25, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 26, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 27, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 28, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 29, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 30, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 31, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 32, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 33, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "14"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 34, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "15"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 35, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 36, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "17"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 37, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "18"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 38, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 39, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 40, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 41, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 42, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 43, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 44, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 45, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 46, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 47, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 48, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "29"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 50, "filename": "memory_init.1.wasm"}, + {"type": "action", "line": 61, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "assert_return", "line": 63, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 64, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 65, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 66, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 67, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 68, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 69, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 70, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 71, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 72, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 73, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 74, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 75, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 76, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 77, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "14"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 78, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "15"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 79, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 80, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "17"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 81, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "18"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 82, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 83, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 84, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 85, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 86, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 87, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 88, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 89, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 90, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 91, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 92, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "29"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 94, "filename": "memory_init.2.wasm"}, + {"type": "action", "line": 105, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "assert_return", "line": 107, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 108, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 109, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 110, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 111, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 112, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 113, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 114, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 115, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 116, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 117, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 118, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 119, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 120, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 121, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "14"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 122, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "15"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 123, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 124, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "17"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 125, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "18"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 126, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 127, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 128, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 129, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 130, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 131, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 132, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 133, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 134, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 135, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 136, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "29"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 138, "filename": "memory_init.3.wasm"}, + {"type": "action", "line": 157, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "assert_return", "line": 159, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 160, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 161, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 162, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 163, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 164, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 165, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 166, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 167, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 168, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 169, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 170, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 171, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 172, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 173, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "14"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 174, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "15"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 175, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 176, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "17"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 177, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "18"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 178, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 179, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 180, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 181, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 182, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 183, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 184, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 185, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 186, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 187, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 188, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "29"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_invalid", "line": 190, "filename": "memory_init.4.wasm", "text": "unknown data segment", "module_type": "binary"}, + {"type": "assert_invalid", "line": 196, "filename": "memory_init.5.wasm", "text": "unknown data segment", "module_type": "binary"}, + {"type": "module", "line": 203, "filename": "memory_init.6.wasm"}, + {"type": "action", "line": 209, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 211, "filename": "memory_init.7.wasm"}, + {"type": "assert_trap", "line": 217, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 219, "filename": "memory_init.8.wasm"}, + {"type": "assert_trap", "line": 224, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_invalid", "line": 227, "filename": "memory_init.9.wasm", "text": "unknown memory 0", "module_type": "binary"}, + {"type": "assert_invalid", "line": 233, "filename": "memory_init.10.wasm", "text": "unknown data segment 1", "module_type": "binary"}, + {"type": "module", "line": 240, "filename": "memory_init.11.wasm"}, + {"type": "action", "line": 246, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 248, "filename": "memory_init.12.wasm"}, + {"type": "assert_trap", "line": 253, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 255, "filename": "memory_init.13.wasm"}, + {"type": "assert_trap", "line": 260, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 262, "filename": "memory_init.14.wasm"}, + {"type": "assert_trap", "line": 267, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 269, "filename": "memory_init.15.wasm"}, + {"type": "assert_trap", "line": 274, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 276, "filename": "memory_init.16.wasm"}, + {"type": "action", "line": 281, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 283, "filename": "memory_init.17.wasm"}, + {"type": "assert_trap", "line": 288, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 290, "filename": "memory_init.18.wasm"}, + {"type": "action", "line": 295, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 297, "filename": "memory_init.19.wasm"}, + {"type": "action", "line": 302, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 304, "filename": "memory_init.20.wasm"}, + {"type": "assert_trap", "line": 309, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_invalid", "line": 312, "filename": "memory_init.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 320, "filename": "memory_init.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 328, "filename": "memory_init.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 336, "filename": "memory_init.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 344, "filename": "memory_init.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 352, "filename": "memory_init.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 360, "filename": "memory_init.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 368, "filename": "memory_init.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 376, "filename": "memory_init.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 384, "filename": "memory_init.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 392, "filename": "memory_init.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 400, "filename": "memory_init.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 408, "filename": "memory_init.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 416, "filename": "memory_init.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 424, "filename": "memory_init.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 432, "filename": "memory_init.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 440, "filename": "memory_init.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 448, "filename": "memory_init.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 456, "filename": "memory_init.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 464, "filename": "memory_init.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 472, "filename": "memory_init.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 480, "filename": "memory_init.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 488, "filename": "memory_init.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 496, "filename": "memory_init.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 504, "filename": "memory_init.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 512, "filename": "memory_init.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 520, "filename": "memory_init.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 528, "filename": "memory_init.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 536, "filename": "memory_init.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 544, "filename": "memory_init.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 552, "filename": "memory_init.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 560, "filename": "memory_init.52.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 568, "filename": "memory_init.53.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 576, "filename": "memory_init.54.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 584, "filename": "memory_init.55.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 592, "filename": "memory_init.56.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 600, "filename": "memory_init.57.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 608, "filename": "memory_init.58.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 616, "filename": "memory_init.59.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 624, "filename": "memory_init.60.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 632, "filename": "memory_init.61.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 640, "filename": "memory_init.62.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 648, "filename": "memory_init.63.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 656, "filename": "memory_init.64.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 664, "filename": "memory_init.65.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 672, "filename": "memory_init.66.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 680, "filename": "memory_init.67.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 688, "filename": "memory_init.68.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 696, "filename": "memory_init.69.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 704, "filename": "memory_init.70.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 712, "filename": "memory_init.71.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 720, "filename": "memory_init.72.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 728, "filename": "memory_init.73.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 736, "filename": "memory_init.74.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 744, "filename": "memory_init.75.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 752, "filename": "memory_init.76.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 760, "filename": "memory_init.77.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 768, "filename": "memory_init.78.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 776, "filename": "memory_init.79.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 784, "filename": "memory_init.80.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 792, "filename": "memory_init.81.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 800, "filename": "memory_init.82.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 808, "filename": "memory_init.83.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "module", "line": 815, "filename": "memory_init.84.wasm"}, + {"type": "assert_trap", "line": 833, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65528"}, {"type": "i32", "value": "16"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 836, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 838, "filename": "memory_init.85.wasm"}, + {"type": "assert_trap", "line": 856, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65527"}, {"type": "i32", "value": "16"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 859, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 861, "filename": "memory_init.86.wasm"}, + {"type": "assert_trap", "line": 879, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65472"}, {"type": "i32", "value": "30"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 882, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 884, "filename": "memory_init.87.wasm"}, + {"type": "assert_trap", "line": 902, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65473"}, {"type": "i32", "value": "31"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 905, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 907, "filename": "memory_init.88.wasm"}, + {"type": "assert_trap", "line": 925, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65528"}, {"type": "i32", "value": "4294967040"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 928, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 930, "filename": "memory_init.89.wasm"}, + {"type": "assert_trap", "line": 948, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "4294967292"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 951, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 954, "filename": "memory_init.90.wasm"}]} diff --git a/tests/memory_init.wast b/tests/memory_init.wast new file mode 100644 index 0000000..672b1c5 --- /dev/null +++ b/tests/memory_init.wast @@ -0,0 +1,967 @@ +;; +;; Generated by ../meta/generate_memory_init.js +;; DO NOT EDIT THIS FILE. CHANGE THE SOURCE AND REGENERATE. +;; + +(module + (memory (export "memory0") 1 1) + (data (i32.const 2) "\03\01\04\01") + (data "\02\07\01\08") + (data (i32.const 12) "\07\05\02\03\06") + (data "\05\09\02\07\06") + (func (export "test") + (nop)) + (func (export "load8_u") (param i32) (result i32) + (i32.load8_u (local.get 0)))) + +(invoke "test") + +(assert_return (invoke "load8_u" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 2)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 3)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 4)) (i32.const 4)) +(assert_return (invoke "load8_u" (i32.const 5)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 6)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 7)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 8)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 9)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 10)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 11)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 12)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 13)) (i32.const 5)) +(assert_return (invoke "load8_u" (i32.const 14)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 15)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 16)) (i32.const 6)) +(assert_return (invoke "load8_u" (i32.const 17)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 18)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 19)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 20)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 21)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 22)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 23)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 24)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 25)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 26)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 27)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 28)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 29)) (i32.const 0)) + +(module + (memory (export "memory0") 1 1) + (data (i32.const 2) "\03\01\04\01") + (data "\02\07\01\08") + (data (i32.const 12) "\07\05\02\03\06") + (data "\05\09\02\07\06") + (func (export "test") + (memory.init 1 (i32.const 7) (i32.const 0) (i32.const 4))) + (func (export "load8_u") (param i32) (result i32) + (i32.load8_u (local.get 0)))) + +(invoke "test") + +(assert_return (invoke "load8_u" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 2)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 3)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 4)) (i32.const 4)) +(assert_return (invoke "load8_u" (i32.const 5)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 6)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 7)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 8)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 9)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 10)) (i32.const 8)) +(assert_return (invoke "load8_u" (i32.const 11)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 12)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 13)) (i32.const 5)) +(assert_return (invoke "load8_u" (i32.const 14)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 15)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 16)) (i32.const 6)) +(assert_return (invoke "load8_u" (i32.const 17)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 18)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 19)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 20)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 21)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 22)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 23)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 24)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 25)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 26)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 27)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 28)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 29)) (i32.const 0)) + +(module + (memory (export "memory0") 1 1) + (data (i32.const 2) "\03\01\04\01") + (data "\02\07\01\08") + (data (i32.const 12) "\07\05\02\03\06") + (data "\05\09\02\07\06") + (func (export "test") + (memory.init 3 (i32.const 15) (i32.const 1) (i32.const 3))) + (func (export "load8_u") (param i32) (result i32) + (i32.load8_u (local.get 0)))) + +(invoke "test") + +(assert_return (invoke "load8_u" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 2)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 3)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 4)) (i32.const 4)) +(assert_return (invoke "load8_u" (i32.const 5)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 6)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 7)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 8)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 9)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 10)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 11)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 12)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 13)) (i32.const 5)) +(assert_return (invoke "load8_u" (i32.const 14)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 15)) (i32.const 9)) +(assert_return (invoke "load8_u" (i32.const 16)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 17)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 18)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 19)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 20)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 21)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 22)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 23)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 24)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 25)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 26)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 27)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 28)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 29)) (i32.const 0)) + +(module + (memory (export "memory0") 1 1) + (data (i32.const 2) "\03\01\04\01") + (data "\02\07\01\08") + (data (i32.const 12) "\07\05\02\03\06") + (data "\05\09\02\07\06") + (func (export "test") + (memory.init 1 (i32.const 7) (i32.const 0) (i32.const 4)) + (data.drop 1) + (memory.init 3 (i32.const 15) (i32.const 1) (i32.const 3)) + (data.drop 3) + (memory.copy (i32.const 20) (i32.const 15) (i32.const 5)) + (memory.copy (i32.const 21) (i32.const 29) (i32.const 1)) + (memory.copy (i32.const 24) (i32.const 10) (i32.const 1)) + (memory.copy (i32.const 13) (i32.const 11) (i32.const 4)) + (memory.copy (i32.const 19) (i32.const 20) (i32.const 5))) + (func (export "load8_u") (param i32) (result i32) + (i32.load8_u (local.get 0)))) + +(invoke "test") + +(assert_return (invoke "load8_u" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 2)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 3)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 4)) (i32.const 4)) +(assert_return (invoke "load8_u" (i32.const 5)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 6)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 7)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 8)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 9)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 10)) (i32.const 8)) +(assert_return (invoke "load8_u" (i32.const 11)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 12)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 13)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 14)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 15)) (i32.const 5)) +(assert_return (invoke "load8_u" (i32.const 16)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 17)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 18)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 19)) (i32.const 9)) +(assert_return (invoke "load8_u" (i32.const 20)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 21)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 22)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 23)) (i32.const 8)) +(assert_return (invoke "load8_u" (i32.const 24)) (i32.const 8)) +(assert_return (invoke "load8_u" (i32.const 25)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 26)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 27)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 28)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 29)) (i32.const 0)) +(assert_invalid + (module + (func (export "test") + (data.drop 0))) + "unknown data segment") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (data.drop 4))) + "unknown data segment") + +(module + (memory 1) + (data "\37") + (func (export "test") + (data.drop 0) + (data.drop 0))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (data.drop 0) + (memory.init 0 (i32.const 1234) (i32.const 1) (i32.const 1)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data (i32.const 0) "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 1) (i32.const 1)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(assert_invalid + (module + (func (export "test") + (memory.init 1 (i32.const 1234) (i32.const 1) (i32.const 1)))) + "unknown memory 0") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 1 (i32.const 1234) (i32.const 1) (i32.const 1)))) + "unknown data segment 1") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i32.const 0) (i32.const 1)) + (memory.init 0 (i32.const 1) (i32.const 0) (i32.const 1)))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 0) (i32.const 5)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 2) (i32.const 3)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0xFFFE) (i32.const 1) (i32.const 3)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 4) (i32.const 0)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 1) (i32.const 0)))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0x10001) (i32.const 0) (i32.const 0)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0x10000) (i32.const 0) (i32.const 0)))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0x10000) (i32.const 1) (i32.const 0)))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0x10001) (i32.const 4) (i32.const 0)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f64.const 1) (f64.const 1)))) + "type mismatch") + +(module + (memory 1 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65528) (i32.const 16)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65527) (i32.const 16)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65472) (i32.const 30)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65473) (i32.const 31)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65528) (i32.const 4294967040)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 0) (i32.const 4294967292)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) + +(module + (memory 1) + ;; 65 data segments. 64 is the smallest positive number that is encoded + ;; differently as a signed LEB. + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") + (func (memory.init 64 (i32.const 0) (i32.const 0) (i32.const 0)))) From 60da1314bce588f16186e47d59e4b8d1175dd14d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Sun, 13 Oct 2024 11:40:28 -0700 Subject: [PATCH 02/11] update tests --- tests/address.wast | 1 - tests/align.wast | 117 + tests/block.wast | 401 ++- tests/br.wast | 13 + tests/br_if.wast | 1 + tests/br_table.wast | 3021 +++++++++---------- tests/bulk.wast | 4 +- tests/call.wast | 61 + tests/call_indirect.wast | 126 +- tests/const.wast | 1 - tests/conversions.wast | 13 +- tests/f32.wast | 9 + tests/f64.wast | 10 + tests/fac.wast | 22 + tests/float_exprs.wast | 60 +- tests/float_literals.wast | 51 +- tests/float_misc.wast | 44 + tests/gen/align.108.wasm | Bin 0 -> 35 bytes tests/gen/align.109.wasm | Bin 0 -> 35 bytes tests/gen/align.110.wasm | Bin 0 -> 35 bytes tests/gen/align.111.wasm | Bin 0 -> 35 bytes tests/gen/align.112.wasm | Bin 0 -> 35 bytes tests/gen/align.113.wasm | Bin 0 -> 35 bytes tests/gen/align.json | 8 +- tests/gen/assert_block.0.c | 5 - tests/gen/assert_call_indirect.34.c | 11 + tests/gen/assert_conversions.0.c | 60 +- tests/gen/assert_float_exprs.38.c | 25 + tests/gen/assert_float_exprs.39.c | 170 +- tests/gen/assert_float_exprs.40.c | 68 +- tests/gen/assert_float_exprs.41.c | 178 +- tests/gen/assert_float_exprs.42.c | 168 +- tests/gen/assert_float_exprs.43.c | 98 +- tests/gen/assert_float_exprs.44.c | 198 +- tests/gen/assert_float_exprs.45.c | 80 +- tests/gen/assert_float_exprs.46.c | 80 +- tests/gen/assert_float_exprs.47.c | 82 +- tests/gen/assert_float_exprs.48.c | 81 +- tests/gen/assert_float_exprs.49.c | 11 +- tests/gen/assert_float_exprs.50.c | 6 +- tests/gen/assert_float_exprs.51.c | 8 +- tests/gen/assert_float_exprs.52.c | 6 +- tests/gen/assert_float_exprs.53.c | 16 +- tests/gen/assert_float_exprs.54.c | 6 +- tests/gen/assert_float_exprs.55.c | 19 +- tests/gen/assert_float_exprs.56.c | 91 +- tests/gen/assert_float_exprs.57.c | 52 +- tests/gen/assert_float_exprs.58.c | 100 +- tests/gen/assert_float_exprs.59.c | 55 +- tests/gen/assert_float_exprs.60.c | 55 +- tests/gen/assert_float_exprs.61.c | 23 +- tests/gen/assert_float_exprs.62.c | 23 +- tests/gen/assert_float_exprs.63.c | 42 +- tests/gen/assert_float_exprs.64.c | 42 +- tests/gen/assert_float_exprs.65.c | 40 +- tests/gen/assert_float_exprs.66.c | 40 +- tests/gen/assert_float_exprs.67.c | 58 +- tests/gen/assert_float_exprs.68.c | 54 +- tests/gen/assert_float_exprs.69.c | 60 +- tests/gen/assert_float_exprs.70.c | 60 +- tests/gen/assert_float_exprs.71.c | 58 +- tests/gen/assert_float_exprs.72.c | 58 +- tests/gen/assert_float_exprs.73.c | 58 +- tests/gen/assert_float_exprs.74.c | 58 +- tests/gen/assert_float_exprs.75.c | 42 +- tests/gen/assert_float_exprs.76.c | 103 +- tests/gen/assert_float_exprs.77.c | 16 +- tests/gen/assert_float_exprs.78.c | 71 +- tests/gen/assert_float_exprs.79.c | 78 +- tests/gen/assert_float_exprs.80.c | 12 +- tests/gen/assert_float_exprs.81.c | 72 +- tests/gen/assert_float_exprs.82.c | 16 +- tests/gen/assert_float_exprs.83.c | 10 + tests/gen/assert_float_exprs.84.c | 16 +- tests/gen/assert_float_exprs.85.c | 10 - tests/gen/assert_float_exprs.86.c | 10 + tests/gen/assert_float_exprs.87.c | 173 +- tests/gen/assert_float_exprs.88.c | 10 - tests/gen/assert_float_exprs.89.c | 193 +- tests/gen/assert_float_exprs.90.c | 14 +- tests/gen/assert_float_exprs.91.c | 32 +- tests/gen/assert_float_exprs.92.c | 62 +- tests/gen/assert_float_exprs.93.c | 13 +- tests/gen/assert_float_exprs.94.c | 62 +- tests/gen/assert_float_exprs.95.c | 13 +- tests/gen/assert_float_exprs.96.c | 21 + tests/gen/assert_float_exprs.97.c | 21 + tests/gen/assert_float_literals.0.c | 80 + tests/gen/assert_float_misc.0.c | 150 + tests/gen/assert_memory_grow.5.c | 16 + tests/gen/block.0.wasm | Bin 1649 -> 1615 bytes tests/gen/block.1.wat | 1 + tests/gen/block.10.wat | 1 + tests/gen/block.100.wasm | Bin 42 -> 43 bytes tests/gen/block.101.wasm | Bin 46 -> 39 bytes tests/gen/block.102.wasm | Bin 42 -> 39 bytes tests/gen/block.103.wasm | Bin 42 -> 46 bytes tests/gen/block.104.wasm | Bin 49 -> 43 bytes tests/gen/block.105.wasm | Bin 46 -> 43 bytes tests/gen/block.106.wasm | Bin 46 -> 46 bytes tests/gen/block.107.wasm | Bin 49 -> 39 bytes tests/gen/block.108.wasm | Bin 31 -> 36 bytes tests/gen/block.109.wasm | Bin 31 -> 36 bytes tests/gen/block.11.wat | 1 + tests/gen/block.110.wasm | Bin 31 -> 39 bytes tests/gen/block.111.wasm | Bin 31 -> 43 bytes tests/gen/block.112.wasm | Bin 32 -> 43 bytes tests/gen/block.113.wasm | Bin 32 -> 37 bytes tests/gen/block.114.wasm | Bin 32 -> 37 bytes tests/gen/block.115.wasm | Bin 32 -> 40 bytes tests/gen/block.116.wasm | Bin 33 -> 44 bytes tests/gen/block.117.wasm | Bin 36 -> 40 bytes tests/gen/block.118.wasm | Bin 40 -> 38 bytes tests/gen/block.119.wasm | Bin 33 -> 38 bytes tests/gen/block.12.wasm | Bin 28 -> 29 bytes tests/gen/block.120.wasm | Bin 36 -> 41 bytes tests/gen/block.121.wasm | Bin 40 -> 45 bytes tests/gen/block.122.wasm | Bin 33 -> 41 bytes tests/gen/block.123.wasm | Bin 33 -> 39 bytes tests/gen/block.124.wasm | Bin 40 -> 42 bytes tests/gen/block.125.wasm | Bin 33 -> 46 bytes tests/gen/block.126.wasm | Bin 33 -> 39 bytes tests/gen/block.127.wasm | Bin 36 -> 42 bytes tests/gen/block.128.wasm | Bin 0 -> 46 bytes tests/gen/block.129.wasm | Bin 0 -> 42 bytes tests/gen/block.13.wasm | Bin 33 -> 28 bytes tests/gen/block.130.wasm | Bin 0 -> 42 bytes tests/gen/block.131.wasm | Bin 0 -> 49 bytes tests/gen/block.132.wasm | Bin 0 -> 46 bytes tests/gen/block.133.wasm | Bin 0 -> 46 bytes tests/gen/block.134.wasm | Bin 0 -> 49 bytes tests/gen/block.135.wasm | Bin 0 -> 42 bytes tests/gen/{block.1.wasm => block.136.wasm} | Bin 28 -> 31 bytes tests/gen/{block.10.wasm => block.137.wasm} | Bin 28 -> 31 bytes tests/gen/{block.3.wasm => block.138.wasm} | Bin 28 -> 31 bytes tests/gen/{block.4.wasm => block.139.wasm} | Bin 28 -> 31 bytes tests/gen/block.14.wasm | Bin 33 -> 28 bytes tests/gen/{block.9.wasm => block.140.wasm} | Bin 28 -> 31 bytes tests/gen/block.141.wasm | Bin 0 -> 32 bytes tests/gen/{block.2.wasm => block.142.wasm} | Bin 28 -> 32 bytes tests/gen/{block.11.wasm => block.143.wasm} | Bin 28 -> 32 bytes tests/gen/block.144.wasm | Bin 0 -> 32 bytes tests/gen/block.145.wasm | Bin 0 -> 32 bytes tests/gen/block.146.wasm | Bin 0 -> 33 bytes tests/gen/block.147.wasm | Bin 0 -> 36 bytes tests/gen/block.148.wasm | Bin 0 -> 40 bytes tests/gen/block.149.wasm | Bin 0 -> 33 bytes tests/gen/block.15.wasm | Bin 35 -> 28 bytes tests/gen/block.150.wasm | Bin 0 -> 36 bytes tests/gen/block.151.wasm | Bin 0 -> 40 bytes tests/gen/block.152.wasm | Bin 0 -> 33 bytes tests/gen/block.153.wasm | Bin 0 -> 33 bytes tests/gen/block.154.wasm | Bin 0 -> 40 bytes tests/gen/block.155.wasm | Bin 0 -> 33 bytes tests/gen/block.156.wasm | Bin 0 -> 33 bytes tests/gen/block.157.wasm | Bin 0 -> 36 bytes tests/gen/block.158.wasm | Bin 0 -> 35 bytes tests/gen/block.159.wasm | Bin 0 -> 32 bytes tests/gen/block.16.wasm | Bin 29 -> 28 bytes tests/gen/block.160.wasm | Bin 0 -> 34 bytes tests/gen/block.161.wasm | Bin 0 -> 37 bytes tests/gen/block.162.wasm | Bin 0 -> 39 bytes tests/gen/block.163.wasm | Bin 0 -> 35 bytes tests/gen/block.164.wasm | Bin 0 -> 37 bytes tests/gen/block.165.wasm | Bin 0 -> 40 bytes tests/gen/block.166.wasm | Bin 0 -> 42 bytes tests/gen/block.167.wat | 1 + tests/gen/block.168.wat | 1 + tests/gen/{block.128.wat => block.169.wat} | 0 tests/gen/block.17.wasm | Bin 29 -> 29 bytes tests/gen/{block.129.wat => block.170.wat} | 0 tests/gen/block.18.wasm | Bin 29 -> 29 bytes tests/gen/block.19.wasm | Bin 29 -> 32 bytes tests/gen/block.2.wat | 1 + tests/gen/block.20.wasm | Bin 30 -> 36 bytes tests/gen/block.21.wasm | Bin 33 -> 31 bytes tests/gen/block.22.wasm | Bin 37 -> 28 bytes tests/gen/block.23.wasm | Bin 30 -> 28 bytes tests/gen/block.24.wasm | Bin 33 -> 28 bytes tests/gen/block.25.wasm | Bin 37 -> 28 bytes tests/gen/block.26.wasm | Bin 30 -> 29 bytes tests/gen/block.27.wasm | Bin 30 -> 33 bytes tests/gen/block.28.wasm | Bin 37 -> 33 bytes tests/gen/block.29.wasm | Bin 30 -> 35 bytes tests/gen/block.3.wat | 1 + tests/gen/block.30.wasm | Bin 30 -> 29 bytes tests/gen/block.31.wasm | Bin 33 -> 29 bytes tests/gen/block.32.wasm | Bin 32 -> 29 bytes tests/gen/block.33.wasm | Bin 32 -> 29 bytes tests/gen/block.34.wasm | Bin 32 -> 30 bytes tests/gen/block.35.wasm | Bin 32 -> 30 bytes tests/gen/block.36.wasm | Bin 32 -> 33 bytes tests/gen/block.37.wasm | Bin 32 -> 37 bytes tests/gen/block.38.wasm | Bin 32 -> 30 bytes tests/gen/block.39.wasm | Bin 32 -> 33 bytes tests/gen/block.4.wat | 1 + tests/gen/block.40.wasm | Bin 32 -> 37 bytes tests/gen/block.41.wasm | Bin 32 -> 30 bytes tests/gen/block.42.wasm | Bin 32 -> 30 bytes tests/gen/block.43.wasm | Bin 32 -> 37 bytes tests/gen/block.44.wasm | Bin 30 -> 30 bytes tests/gen/block.45.wasm | Bin 30 -> 30 bytes tests/gen/block.46.wasm | Bin 30 -> 33 bytes tests/gen/block.47.wasm | Bin 30 -> 31 bytes tests/gen/block.48.wasm | Bin 32 -> 33 bytes tests/gen/block.49.wasm | Bin 32 -> 32 bytes tests/gen/block.5.wasm | Bin 29 -> 0 bytes tests/gen/block.5.wat | 1 + tests/gen/block.50.wasm | Bin 35 -> 32 bytes tests/gen/block.51.wasm | Bin 39 -> 32 bytes tests/gen/block.52.wasm | Bin 33 -> 32 bytes tests/gen/block.53.wasm | Bin 33 -> 32 bytes tests/gen/block.54.wasm | Bin 36 -> 32 bytes tests/gen/block.55.wasm | Bin 40 -> 32 bytes tests/gen/block.56.wasm | Bin 34 -> 32 bytes tests/gen/block.57.wasm | Bin 37 -> 32 bytes tests/gen/block.58.wasm | Bin 41 -> 32 bytes tests/gen/block.59.wasm | Bin 34 -> 32 bytes tests/gen/block.6.wasm | Bin 29 -> 0 bytes tests/gen/block.6.wat | 1 + tests/gen/block.60.wasm | Bin 37 -> 32 bytes tests/gen/block.61.wasm | Bin 41 -> 32 bytes tests/gen/block.62.wasm | Bin 37 -> 30 bytes tests/gen/block.63.wasm | Bin 37 -> 30 bytes tests/gen/block.64.wasm | Bin 44 -> 30 bytes tests/gen/block.65.wasm | Bin 41 -> 30 bytes tests/gen/block.66.wasm | Bin 41 -> 31 bytes tests/gen/block.67.wasm | Bin 44 -> 32 bytes tests/gen/block.68.wasm | Bin 35 -> 32 bytes tests/gen/block.69.wasm | Bin 35 -> 35 bytes tests/gen/block.7.wasm | Bin 32 -> 0 bytes tests/gen/block.7.wat | 1 + tests/gen/block.70.wasm | Bin 38 -> 39 bytes tests/gen/block.71.wasm | Bin 42 -> 35 bytes tests/gen/block.72.wasm | Bin 36 -> 33 bytes tests/gen/block.73.wasm | Bin 39 -> 33 bytes tests/gen/block.74.wasm | Bin 43 -> 36 bytes tests/gen/block.75.wasm | Bin 36 -> 40 bytes tests/gen/block.76.wasm | Bin 39 -> 34 bytes tests/gen/block.77.wasm | Bin 43 -> 37 bytes tests/gen/block.78.wasm | Bin 39 -> 41 bytes tests/gen/block.79.wasm | Bin 39 -> 34 bytes tests/gen/block.8.wasm | Bin 36 -> 0 bytes tests/gen/block.8.wat | 1 + tests/gen/block.80.wasm | Bin 46 -> 37 bytes tests/gen/block.81.wasm | Bin 43 -> 41 bytes tests/gen/block.82.wasm | Bin 43 -> 37 bytes tests/gen/block.83.wasm | Bin 46 -> 37 bytes tests/gen/block.84.wasm | Bin 36 -> 44 bytes tests/gen/block.85.wasm | Bin 36 -> 41 bytes tests/gen/block.86.wasm | Bin 39 -> 41 bytes tests/gen/block.87.wasm | Bin 43 -> 44 bytes tests/gen/block.88.wasm | Bin 37 -> 37 bytes tests/gen/block.89.wasm | Bin 37 -> 37 bytes tests/gen/block.9.wat | 1 + tests/gen/block.90.wasm | Bin 40 -> 35 bytes tests/gen/block.91.wasm | Bin 44 -> 35 bytes tests/gen/block.92.wasm | Bin 38 -> 38 bytes tests/gen/block.93.wasm | Bin 38 -> 42 bytes tests/gen/block.94.wasm | Bin 41 -> 38 bytes tests/gen/block.95.wasm | Bin 45 -> 36 bytes tests/gen/block.96.wasm | Bin 39 -> 39 bytes tests/gen/block.97.wasm | Bin 42 -> 43 bytes tests/gen/block.98.wasm | Bin 46 -> 36 bytes tests/gen/block.99.wasm | Bin 39 -> 39 bytes tests/gen/block.json | 380 +-- tests/gen/br.json | 188 +- tests/gen/br_table.0.wasm | Bin 27419 -> 18951 bytes tests/gen/br_table.json | 342 +-- tests/gen/call.json | 164 +- tests/gen/call_indirect.34.wasm | Bin 0 -> 142 bytes tests/gen/call_indirect.json | 303 +- tests/gen/conversions.json | 820 ++--- tests/gen/f32.12.wat | 1 + tests/gen/f32.13.wat | 1 + tests/gen/f32.json | 4 +- tests/gen/f64.12.wat | 1 + tests/gen/f64.13.wat | 1 + tests/gen/f64.json | 4 +- tests/gen/fac.json | 12 +- tests/gen/float_exprs.38.wasm | Bin 59 -> 107 bytes tests/gen/float_exprs.39.wasm | Bin 735 -> 107 bytes tests/gen/float_exprs.40.wasm | Bin 116 -> 107 bytes tests/gen/float_exprs.41.wasm | Bin 116 -> 735 bytes tests/gen/float_exprs.42.wasm | Bin 192 -> 116 bytes tests/gen/float_exprs.43.wasm | Bin 337 -> 116 bytes tests/gen/float_exprs.44.wasm | Bin 330 -> 192 bytes tests/gen/float_exprs.45.wasm | Bin 440 -> 337 bytes tests/gen/float_exprs.46.wasm | Bin 432 -> 330 bytes tests/gen/float_exprs.47.wasm | Bin 152 -> 440 bytes tests/gen/float_exprs.48.wasm | Bin 110 -> 432 bytes tests/gen/float_exprs.49.wasm | Bin 122 -> 152 bytes tests/gen/float_exprs.50.wasm | Bin 58 -> 110 bytes tests/gen/float_exprs.51.wasm | Bin 60 -> 122 bytes tests/gen/float_exprs.52.wasm | Bin 64 -> 58 bytes tests/gen/float_exprs.53.wasm | Bin 114 -> 60 bytes tests/gen/float_exprs.54.wasm | Bin 47 -> 64 bytes tests/gen/float_exprs.55.wasm | Bin 98 -> 114 bytes tests/gen/float_exprs.56.wasm | Bin 126 -> 47 bytes tests/gen/float_exprs.57.wasm | Bin 120 -> 98 bytes tests/gen/float_exprs.58.wasm | Bin 120 -> 126 bytes tests/gen/float_exprs.59.wasm | Bin 235 -> 120 bytes tests/gen/float_exprs.60.wasm | Bin 283 -> 120 bytes tests/gen/float_exprs.61.wasm | Bin 1197 -> 235 bytes tests/gen/float_exprs.62.wasm | Bin 2221 -> 283 bytes tests/gen/float_exprs.63.wasm | Bin 96 -> 1197 bytes tests/gen/float_exprs.64.wasm | Bin 96 -> 2221 bytes tests/gen/float_exprs.65.wasm | Bin 106 -> 96 bytes tests/gen/float_exprs.66.wasm | Bin 94 -> 96 bytes tests/gen/float_exprs.67.wasm | Bin 122 -> 106 bytes tests/gen/float_exprs.68.wasm | Bin 102 -> 94 bytes tests/gen/float_exprs.69.wasm | Bin 112 -> 122 bytes tests/gen/float_exprs.70.wasm | Bin 110 -> 102 bytes tests/gen/float_exprs.71.wasm | Bin 102 -> 112 bytes tests/gen/float_exprs.72.wasm | Bin 102 -> 110 bytes tests/gen/float_exprs.73.wasm | Bin 102 -> 102 bytes tests/gen/float_exprs.74.wasm | Bin 112 -> 102 bytes tests/gen/float_exprs.75.wasm | Bin 134 -> 102 bytes tests/gen/float_exprs.76.wasm | Bin 246 -> 112 bytes tests/gen/float_exprs.77.wasm | Bin 122 -> 134 bytes tests/gen/float_exprs.78.wasm | Bin 132 -> 246 bytes tests/gen/float_exprs.79.wasm | Bin 388 -> 122 bytes tests/gen/float_exprs.80.wasm | Bin 231 -> 132 bytes tests/gen/float_exprs.81.wasm | Bin 126 -> 388 bytes tests/gen/float_exprs.82.wasm | Bin 231 -> 231 bytes tests/gen/float_exprs.83.wasm | Bin 216 -> 126 bytes tests/gen/float_exprs.84.wasm | Bin 142 -> 231 bytes tests/gen/float_exprs.85.wasm | Bin 160 -> 216 bytes tests/gen/float_exprs.86.wasm | Bin 337 -> 142 bytes tests/gen/float_exprs.87.wasm | Bin 964 -> 160 bytes tests/gen/float_exprs.88.wasm | Bin 135 -> 337 bytes tests/gen/float_exprs.89.wasm | Bin 102 -> 964 bytes tests/gen/float_exprs.90.wasm | Bin 120 -> 135 bytes tests/gen/float_exprs.91.wasm | Bin 98 -> 102 bytes tests/gen/float_exprs.92.wasm | Bin 126 -> 120 bytes tests/gen/float_exprs.93.wasm | Bin 58 -> 98 bytes tests/gen/float_exprs.94.wasm | Bin 235 -> 126 bytes tests/gen/float_exprs.95.wasm | Bin 146 -> 58 bytes tests/gen/float_exprs.96.wasm | Bin 0 -> 235 bytes tests/gen/float_exprs.97.wasm | Bin 0 -> 146 bytes tests/gen/float_exprs.json | 1209 ++++---- tests/gen/float_literals.0.wasm | Bin 2534 -> 3010 bytes tests/gen/float_literals.40.wat | 2 +- tests/gen/float_literals.41.wat | 2 +- tests/gen/float_literals.42.wat | 2 +- tests/gen/float_literals.43.wat | 2 +- tests/gen/float_literals.44.wat | 2 +- tests/gen/float_literals.45.wat | 2 +- tests/gen/float_literals.46.wat | 2 +- tests/gen/float_literals.47.wat | 2 +- tests/gen/float_literals.48.wat | 2 +- tests/gen/float_literals.49.wat | 2 +- tests/gen/float_literals.50.wat | 2 +- tests/gen/float_literals.51.wat | 2 +- tests/gen/float_literals.52.wat | 2 +- tests/gen/float_literals.53.wat | 2 +- tests/gen/float_literals.54.wat | 2 +- tests/gen/float_literals.55.wat | 2 +- tests/gen/float_literals.56.wat | 2 +- tests/gen/float_literals.57.wat | 2 +- tests/gen/float_literals.58.wat | 2 +- tests/gen/float_literals.59.wat | 2 +- tests/gen/float_literals.60.wat | 2 +- tests/gen/float_literals.61.wat | 2 +- tests/gen/float_literals.62.wat | 2 +- tests/gen/float_literals.63.wat | 2 +- tests/gen/float_literals.64.wat | 2 +- tests/gen/float_literals.65.wat | 2 +- tests/gen/float_literals.66.wat | 2 +- tests/gen/float_literals.67.wat | 2 +- tests/gen/float_literals.68.wat | 2 +- tests/gen/float_literals.69.wat | 2 +- tests/gen/float_literals.70.wat | 2 +- tests/gen/float_literals.71.wat | 2 +- tests/gen/float_literals.72.wat | 2 +- tests/gen/float_literals.73.wat | 2 +- tests/gen/float_literals.74.wat | 2 +- tests/gen/float_literals.75.wat | 2 +- tests/gen/float_literals.76.wat | 2 +- tests/gen/float_literals.77.wat | 2 +- tests/gen/float_literals.78.wat | 1 + tests/gen/float_literals.79.wat | 1 + tests/gen/float_literals.json | 328 +- tests/gen/float_misc.json | 150 +- tests/gen/i32.84.wat | 1 + tests/gen/i32.85.wat | 1 + tests/gen/i32.json | 4 +- tests/gen/i64.30.wat | 1 + tests/gen/i64.31.wat | 1 + tests/gen/i64.json | 4 +- tests/gen/memory_grow.10.wasm | Bin 0 -> 37 bytes tests/gen/memory_grow.11.wasm | Bin 0 -> 33 bytes tests/gen/memory_grow.12.wasm | Bin 0 -> 34 bytes tests/gen/memory_grow.5.wasm | Bin 32 -> 53 bytes tests/gen/memory_grow.6.wasm | Bin 37 -> 32 bytes tests/gen/memory_grow.7.wasm | Bin 37 -> 37 bytes tests/gen/memory_grow.8.wasm | Bin 39 -> 37 bytes tests/gen/memory_grow.9.wasm | Bin 37 -> 39 bytes tests/gen/memory_grow.json | 15 +- tests/i32.wast | 9 + tests/i64.wast | 9 + tests/memory_grow.wast | 68 +- 402 files changed, 6521 insertions(+), 5273 deletions(-) mode change 100755 => 100644 tests/br_table.wast create mode 100644 tests/gen/align.108.wasm create mode 100644 tests/gen/align.109.wasm create mode 100644 tests/gen/align.110.wasm create mode 100644 tests/gen/align.111.wasm create mode 100644 tests/gen/align.112.wasm create mode 100644 tests/gen/align.113.wasm create mode 100644 tests/gen/assert_call_indirect.34.c create mode 100644 tests/gen/assert_float_exprs.96.c create mode 100644 tests/gen/assert_float_exprs.97.c create mode 100644 tests/gen/assert_memory_grow.5.c create mode 100644 tests/gen/block.1.wat create mode 100644 tests/gen/block.10.wat create mode 100644 tests/gen/block.11.wat create mode 100644 tests/gen/block.128.wasm create mode 100644 tests/gen/block.129.wasm create mode 100644 tests/gen/block.130.wasm create mode 100644 tests/gen/block.131.wasm create mode 100644 tests/gen/block.132.wasm create mode 100644 tests/gen/block.133.wasm create mode 100644 tests/gen/block.134.wasm create mode 100644 tests/gen/block.135.wasm rename tests/gen/{block.1.wasm => block.136.wasm} (64%) rename tests/gen/{block.10.wasm => block.137.wasm} (64%) rename tests/gen/{block.3.wasm => block.138.wasm} (64%) rename tests/gen/{block.4.wasm => block.139.wasm} (64%) rename tests/gen/{block.9.wasm => block.140.wasm} (64%) create mode 100644 tests/gen/block.141.wasm rename tests/gen/{block.2.wasm => block.142.wasm} (62%) rename tests/gen/{block.11.wasm => block.143.wasm} (62%) create mode 100644 tests/gen/block.144.wasm create mode 100644 tests/gen/block.145.wasm create mode 100644 tests/gen/block.146.wasm create mode 100644 tests/gen/block.147.wasm create mode 100644 tests/gen/block.148.wasm create mode 100644 tests/gen/block.149.wasm create mode 100644 tests/gen/block.150.wasm create mode 100644 tests/gen/block.151.wasm create mode 100644 tests/gen/block.152.wasm create mode 100644 tests/gen/block.153.wasm create mode 100644 tests/gen/block.154.wasm create mode 100644 tests/gen/block.155.wasm create mode 100644 tests/gen/block.156.wasm create mode 100644 tests/gen/block.157.wasm create mode 100644 tests/gen/block.158.wasm create mode 100644 tests/gen/block.159.wasm create mode 100644 tests/gen/block.160.wasm create mode 100644 tests/gen/block.161.wasm create mode 100644 tests/gen/block.162.wasm create mode 100644 tests/gen/block.163.wasm create mode 100644 tests/gen/block.164.wasm create mode 100644 tests/gen/block.165.wasm create mode 100644 tests/gen/block.166.wasm create mode 100644 tests/gen/block.167.wat create mode 100644 tests/gen/block.168.wat rename tests/gen/{block.128.wat => block.169.wat} (100%) rename tests/gen/{block.129.wat => block.170.wat} (100%) create mode 100644 tests/gen/block.2.wat create mode 100644 tests/gen/block.3.wat create mode 100644 tests/gen/block.4.wat delete mode 100644 tests/gen/block.5.wasm create mode 100644 tests/gen/block.5.wat delete mode 100644 tests/gen/block.6.wasm create mode 100644 tests/gen/block.6.wat delete mode 100644 tests/gen/block.7.wasm create mode 100644 tests/gen/block.7.wat delete mode 100644 tests/gen/block.8.wasm create mode 100644 tests/gen/block.8.wat create mode 100644 tests/gen/block.9.wat create mode 100644 tests/gen/call_indirect.34.wasm create mode 100644 tests/gen/f32.12.wat create mode 100644 tests/gen/f32.13.wat create mode 100644 tests/gen/f64.12.wat create mode 100644 tests/gen/f64.13.wat create mode 100644 tests/gen/float_exprs.96.wasm create mode 100644 tests/gen/float_exprs.97.wasm create mode 100644 tests/gen/float_literals.78.wat create mode 100644 tests/gen/float_literals.79.wat create mode 100644 tests/gen/i32.84.wat create mode 100644 tests/gen/i32.85.wat create mode 100644 tests/gen/i64.30.wat create mode 100644 tests/gen/i64.31.wat create mode 100644 tests/gen/memory_grow.10.wasm create mode 100644 tests/gen/memory_grow.11.wasm create mode 100644 tests/gen/memory_grow.12.wasm diff --git a/tests/address.wast b/tests/address.wast index 0883987..320ea36 100644 --- a/tests/address.wast +++ b/tests/address.wast @@ -608,4 +608,3 @@ (assert_trap (invoke "64_bad" (i32.const 0)) "out of bounds memory access") (assert_trap (invoke "64_bad" (i32.const 1)) "out of bounds memory access") - diff --git a/tests/align.wast b/tests/align.wast index 9306464..7753df8 100644 --- a/tests/align.wast +++ b/tests/align.wast @@ -864,3 +864,120 @@ (assert_trap (invoke "store" (i32.const 65532) (i64.const -1)) "out of bounds memory access") ;; No memory was changed (assert_return (invoke "load" (i32.const 65532)) (i32.const 0)) + +;; Test invalid alignment values that may cause overflow when parsed. +;; These use the binary format, because it stores alignment as a base-2 exponent. + +;; Signed 32-bit overflow +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\1f\00" ;; i32.load offset=0 align=2**31 + "\1a" ;; drop + "\0b" ;; end + ) + "alignment must not be larger than natural" +) + +;; Unsigned 32-bit overflow +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\20\00" ;; i32.load offset=0 align=2**32 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) + +;; 32-bit out of range +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\21\00" ;; i32.load offset=0 align=2**33 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) + +;; Signed 64-bit overflow +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\3f\00" ;; i32.load offset=0 align=2**63 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) + +;; Unsigned 64-bit overflow +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\40\00" ;; i32.load offset=0 align=2**64 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) + +;; 64-bit out of range +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\41\00" ;; i32.load offset=0 align=2**65 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) diff --git a/tests/block.wast b/tests/block.wast index 625dd98..574b10d 100644 --- a/tests/block.wast +++ b/tests/block.wast @@ -16,10 +16,20 @@ (block (result i32) (i32.const 7)) ) - (func (export "multi") (result i32) - (block (call $dummy) (call $dummy) (call $dummy) (call $dummy)) - (block (result i32) (call $dummy) (call $dummy) (call $dummy) (i32.const 8)) - ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "multi") (result i32) + ;; (block (call $dummy) (call $dummy) (call $dummy) (call $dummy)) + ;; (block (result i32) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 7) (call $dummy) + ;; ) + ;; (drop) + ;; (block (result i32 i64 i32) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 8) (call $dummy) + ;; (call $dummy) (call $dummy) (call $dummy) (i64.const 7) (call $dummy) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 9) (call $dummy) + ;; ) + ;; (drop) (drop) + ;; ) (func (export "nested") (result i32) (block (result i32) @@ -198,6 +208,29 @@ (block (result f32) (call $dummy) (f32.const 3)) ) ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "as-binary-operands") (result i32) + ;; (i32.mul + ;; (block (result i32 i32) + ;; (call $dummy) (i32.const 3) (call $dummy) (i32.const 4) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-compare-operands") (result i32) + ;; (f32.gt + ;; (block (result f32 f32) + ;; (call $dummy) (f32.const 3) (call $dummy) (f32.const 3) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-mixed-operands") (result i32) + ;; (block (result i32 i32) + ;; (call $dummy) (i32.const 3) (call $dummy) (i32.const 4) + ;; ) + ;; (i32.const 5) + ;; (i32.add) + ;; (i32.mul) + ;; ) (func (export "break-bare") (result i32) (block (br 0) (unreachable)) @@ -209,6 +242,13 @@ (func (export "break-value") (result i32) (block (result i32) (br 0 (i32.const 18)) (i32.const 19)) ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "break-multi-value") (result i32 i32 i64) + ;; (block (result i32 i32 i64) + ;; (br 0 (i32.const 18) (i32.const -18) (i64.const 18)) + ;; (i32.const 19) (i32.const -19) (i64.const 19) + ;; ) + ;; ) (func (export "break-repeated") (result i32) (block (result i32) (br 0 (i32.const 18)) @@ -235,6 +275,53 @@ (local.get 0) ) + ;; W2C2: No support for blocks with params + ;; (func (export "param") (result i32) + ;; (i32.const 1) + ;; (block (param i32) (result i32) + ;; (i32.const 2) + ;; (i32.add) + ;; ) + ;; ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "params") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (block (param i32 i32) (result i32) + ;; (i32.add) + ;; ) + ;; ) + ;; (func (export "params-id") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (block (param i32 i32) (result i32 i32)) + ;; (i32.add) + ;; ) + ;; W2C2: No support for blocks with params + ;; (func (export "param-break") (result i32) + ;; (i32.const 1) + ;; (block (param i32) (result i32) + ;; (i32.const 2) + ;; (i32.add) + ;; (br 0) + ;; ) + ;; ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "params-break") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (block (param i32 i32) (result i32) + ;; (i32.add) + ;; (br 0) + ;; ) + ;; ) + ;; (func (export "params-id-break") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (block (param i32 i32) (result i32 i32) (br 0)) + ;; (i32.add) + ;; ) + (func (export "effects") (result i32) (local i32) (block @@ -247,11 +334,34 @@ ) (i32.eq (local.get 0) (i32.const -14)) ) + + ;; W2C2: No support for func block types + ;; (type $block-sig-1 (func)) + ;; (type $block-sig-2 (func (result i32))) + ;; (type $block-sig-3 (func (param $x i32))) + ;; (type $block-sig-4 (func (param i32 f64 i32) (result i32 f64 i32))) + + ;; (func (export "type-use") + ;; (block (type $block-sig-1)) + ;; (block (type $block-sig-2) (i32.const 0)) + ;; (block (type $block-sig-3) (drop)) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (block (type $block-sig-4)) + ;; (drop) (drop) (drop) + ;; (block (type $block-sig-2) (result i32) (i32.const 0)) + ;; (block (type $block-sig-3) (param i32) (drop)) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (block (type $block-sig-4) + ;; (param i32) (param f64 i32) (result i32 f64) (result i32) + ;; ) + ;; (drop) (drop) (drop) + ;; ) ) (assert_return (invoke "empty")) (assert_return (invoke "singular") (i32.const 7)) -(assert_return (invoke "multi") (i32.const 8)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "multi") (i32.const 8)) (assert_return (invoke "nested") (i32.const 9)) (assert_return (invoke "deep") (i32.const 150)) @@ -294,14 +404,119 @@ (assert_return (invoke "as-binary-operand") (i32.const 12)) (assert_return (invoke "as-test-operand") (i32.const 0)) (assert_return (invoke "as-compare-operand") (i32.const 0)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "as-binary-operands") (i32.const 12)) +;; (assert_return (invoke "as-compare-operands") (i32.const 0)) +;; (assert_return (invoke "as-mixed-operands") (i32.const 27)) (assert_return (invoke "break-bare") (i32.const 19)) (assert_return (invoke "break-value") (i32.const 18)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "break-multi-value") +;; (i32.const 18) (i32.const -18) (i64.const 18) +;; ) (assert_return (invoke "break-repeated") (i32.const 18)) (assert_return (invoke "break-inner") (i32.const 0xf)) +;; W2C2: No support for blocks with params +;; (assert_return (invoke "param") (i32.const 3)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "params") (i32.const 3)) +;; (assert_return (invoke "params-id") (i32.const 3)) +;; W2C2: No support for blocks with params +;; (assert_return (invoke "param-break") (i32.const 3)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "params-break") (i32.const 3)) +;; (assert_return (invoke "params-id-break") (i32.const 3)) + (assert_return (invoke "effects") (i32.const 1)) +;; W2C2: No support for func block types +;; (assert_return (invoke "type-use")) + +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (type $sig) (result i32) (param i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (param i32) (type $sig) (result i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (param i32) (result i32) (type $sig)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (result i32) (type $sig) (param i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (result i32) (param i32) (type $sig)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(func (i32.const 0) (block (result i32) (param i32)))" + ) + "unexpected token" +) + +(assert_malformed + (module quote "(func (i32.const 0) (block (param $x i32) (drop)))") + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func))" + "(func (block (type $sig) (result i32) (i32.const 0)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (block (type $sig) (result i32) (i32.const 0)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (type $sig) (param i32) (drop)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32 i32) (result i32)))" + "(func (i32.const 0) (block (type $sig) (param i32) (result i32)) (unreachable))" + ) + "inline function type" +) + +(assert_invalid + (module + (type $sig (func)) + (func (block (type $sig) (i32.const 0))) + ) + "type mismatch" +) + (assert_invalid (module (func $type-empty-i32 (result i32) (block))) "type mismatch" @@ -343,7 +558,12 @@ )) "type mismatch" ) - +(assert_invalid + (module (func $type-value-nums-vs-void + (block (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-empty-vs-i32 (result i32) (block (result i32)) @@ -368,6 +588,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-value-empty-vs-nums (result i32 i32) + (block (result i32 i32)) + )) + "type mismatch" +) (assert_invalid (module @@ -421,7 +647,12 @@ )) "type mismatch" ) - +(assert_invalid + (module (func $type-value-void-vs-nums (result i32 i32) + (block (result i32 i32) (nop)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-i32-vs-i64 (result i32) (block (result i32) (i64.const 0)) @@ -494,6 +725,24 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-value-num-vs-nums (result i32 i32) + (block (result i32 i32) (i32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-partial-vs-nums (result i32 i32) + (i32.const 1) (block (result i32 i32) (i32.const 2)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-nums-vs-num (result i32) + (block (result i32) (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-unreached-select-i32-i64 (result i32) @@ -592,6 +841,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-last-void-vs-nums (result i32 i32) + (block (result i32 i32) (br 0)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-empty-vs-i32 (result i32) @@ -617,6 +872,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-empty-vs-nums (result i32 i32) + (block (result i32 i32) (br 0) (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-void-vs-i32 (result i32) @@ -715,6 +976,18 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-num-vs-nums (result i32 i32) + (block (result i32 i32) (br 0 (i32.const 0)) (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-break-partial-vs-nums (result i32 i32) + (i32.const 1) (block (result i32 i32) (br 0 (i32.const 0)) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-first-void-vs-i32 (result i32) @@ -740,6 +1013,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-first-void-vs-nums (result i32 i32) + (block (result i32 i32) (br 0 (nop)) (br 0 (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-first-i32-vs-i64 (result i32) @@ -813,6 +1092,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-first-num-vs-nums (result i32 i32) + (block (result i32 i32) (br 0 (i32.const 0)) (br 0 (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-i32-vs-void @@ -838,6 +1123,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-nums-vs-void + (block (result i32 i32) (block (result i32 i32) (br 1 (i32.const 1) (i32.const 2))) (br 0)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-empty-vs-i32 (result i32) @@ -863,6 +1154,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-empty-vs-nums (result i32 i32) + (block (result i32 i32) (block (br 1)) (br 0 (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-void-vs-i32 (result i32) @@ -888,6 +1185,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-void-vs-nums (result i32 i32) + (block (result i32 i32) (block (result i32 i32) (br 1 (nop))) (br 0 (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-i32-vs-i64 (result i32) @@ -985,6 +1288,14 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-num-vs-nums (result i32 i32) + (block (result i32 i32) + (block (result i32 i32) (br 1 (i32.const 0))) (br 0 (i32.const 1) (i32.const 2)) + ) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-operand-empty-vs-i32 (result i32) @@ -1010,6 +1321,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-operand-empty-vs-nums (result i32) + (i32.add (block (br 0))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-operand-void-vs-i32 (result i32) @@ -1035,6 +1352,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-operand-void-vs-nums (result i32) + (i32.add (block (br 0 (nop)))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-operand-i32-vs-i64 (result i32) @@ -1108,6 +1431,70 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-operand-num-vs-nums (result i32) + (i32.add (block (br 0 (i64.const 9) (i32.const 10)))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-param-void-vs-num + (block (param i32) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (block (param i32 f64) (drop) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (f32.const 0) (block (param i32) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (f32.const 0) (block (param f32 i32) (drop) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-nested-void-vs-num + (block (block (param i32) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (block (block (param i32 f64) (drop) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (block (f32.const 0) (block (param i32) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (block (f32.const 0) (block (param f32 i32) (drop) (drop))) + )) + "type mismatch" +) + +(assert_malformed + (module quote "(func (param i32) (result i32) block (param $x i32) end)") + "unexpected token" +) +(assert_malformed + (module quote "(func (param i32) (result i32) (block (param $x i32)))") + "unexpected token" +) (assert_malformed diff --git a/tests/br.wast b/tests/br.wast index d68b871..385b977 100644 --- a/tests/br.wast +++ b/tests/br.wast @@ -25,6 +25,12 @@ (func (export "type-f64-value") (result f64) (block (result f64) (f64.neg (br 0 (f64.const 4)))) ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "type-f64-f64-value") (result f64 f64) + ;; (block (result f64 f64) + ;; (f64.add (br 0 (f64.const 4) (f64.const 5))) (f64.const 6) + ;; ) + ;; ) (func (export "as-block-first") (block (br 0) (call $dummy)) @@ -88,6 +94,11 @@ (func (export "as-return-value") (result i64) (block (result i64) (return (br 0 (i64.const 7)))) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "as-return-values") (result i32 i64) + ;; (i32.const 2) + ;; (block (result i64) (return (br 0 (i32.const 1) (i64.const 7)))) + ;; ) (func (export "as-if-cond") (result i32) (block (result i32) @@ -373,6 +384,7 @@ (assert_return (invoke "type-i64-value") (i64.const 2)) (assert_return (invoke "type-f32-value") (f32.const 3)) (assert_return (invoke "type-f64-value") (f64.const 4)) +;; W2C2: No support for blocks with multiple return values ;; (assert_return (invoke "type-f64-f64-value") (f64.const 4) (f64.const 5)) (assert_return (invoke "as-block-first")) @@ -395,6 +407,7 @@ (assert_return (invoke "as-br_table-value-index") (i32.const 11)) (assert_return (invoke "as-return-value") (i64.const 7)) +;; W2C2: No support for functions with multiple return values ;; (assert_return (invoke "as-return-values") (i32.const 2) (i64.const 7)) (assert_return (invoke "as-if-cond") (i32.const 2)) diff --git a/tests/br_if.wast b/tests/br_if.wast index bba5f8a..fba5deb 100644 --- a/tests/br_if.wast +++ b/tests/br_if.wast @@ -662,3 +662,4 @@ (module (func $large-label (br_if 0x10000001 (i32.const 1)))) "unknown label" ) + diff --git a/tests/br_table.wast b/tests/br_table.wast old mode 100755 new mode 100644 index 77d5adb..58b4d65 --- a/tests/br_table.wast +++ b/tests/br_table.wast @@ -1,1628 +1,1393 @@ - -;; Test `br_table` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "type-i32") - (block (drop (i32.ctz (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-i64") - (block (drop (i64.ctz (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-f32") - (block (drop (f32.neg (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-f64") - (block (drop (f64.neg (br_table 0 0 (i32.const 0))))) - ) - - (func (export "type-i32-value") (result i32) - (block (result i32) (i32.ctz (br_table 0 0 (i32.const 1) (i32.const 0)))) - ) - (func (export "type-i64-value") (result i64) - (block (result i64) (i64.ctz (br_table 0 0 (i64.const 2) (i32.const 0)))) - ) - (func (export "type-f32-value") (result f32) - (block (result f32) (f32.neg (br_table 0 0 (f32.const 3) (i32.const 0)))) - ) - (func (export "type-f64-value") (result f64) - (block (result f64) (f64.neg (br_table 0 0 (f64.const 4) (i32.const 0)))) - ) - - (func (export "empty") (param i32) (result i32) - (block (br_table 0 (local.get 0)) (return (i32.const 21))) - (i32.const 22) - ) - (func (export "empty-value") (param i32) (result i32) - (block (result i32) - (br_table 0 (i32.const 33) (local.get 0)) (i32.const 31) - ) - ) - - (func (export "singleton") (param i32) (result i32) - (block - (block - (br_table 1 0 (local.get 0)) - (return (i32.const 21)) - ) - (return (i32.const 20)) - ) - (i32.const 22) - ) - - (func (export "singleton-value") (param i32) (result i32) - (block (result i32) - (drop - (block (result i32) - (br_table 0 1 (i32.const 33) (local.get 0)) - (return (i32.const 31)) - ) - ) - (i32.const 32) - ) - ) - - (func (export "multiple") (param i32) (result i32) - (block - (block - (block - (block - (block - (br_table 3 2 1 0 4 (local.get 0)) - (return (i32.const 99)) - ) - (return (i32.const 100)) - ) - (return (i32.const 101)) - ) - (return (i32.const 102)) - ) - (return (i32.const 103)) - ) - (i32.const 104) - ) - - (func (export "multiple-value") (param i32) (result i32) - (local i32) - (local.set 1 (block (result i32) - (local.set 1 (block (result i32) - (local.set 1 (block (result i32) - (local.set 1 (block (result i32) - (local.set 1 (block (result i32) - (br_table 3 2 1 0 4 (i32.const 200) (local.get 0)) - (return (i32.add (local.get 1) (i32.const 99))) - )) - (return (i32.add (local.get 1) (i32.const 10))) - )) - (return (i32.add (local.get 1) (i32.const 11))) - )) - (return (i32.add (local.get 1) (i32.const 12))) - )) - (return (i32.add (local.get 1) (i32.const 13))) - )) - (i32.add (local.get 1) (i32.const 14)) - ) - - (func (export "large") (param i32) (result i32) - (block - (block - (br_table - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - (local.get 0) - ) - (return (i32.const -1)) - ) - (return (i32.const 0)) - ) - (return (i32.const 1)) - ) - - (func (export "as-block-first") - (block (br_table 0 0 0 (i32.const 0)) (call $dummy)) - ) - (func (export "as-block-mid") - (block (call $dummy) (br_table 0 0 0 (i32.const 0)) (call $dummy)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (br_table 0 0 0 (i32.const 0))) - ) - (func (export "as-block-value") (result i32) - (block (result i32) - (nop) (call $dummy) (br_table 0 0 0 (i32.const 2) (i32.const 0)) - ) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (br_table 1 1 (i32.const 3) (i32.const 0)) (i32.const 1)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) - (call $dummy) - (br_table 1 1 1 (i32.const 4) (i32.const -1)) - (i32.const 2) - ) - ) - (func (export "as-loop-last") (result i32) - (loop (result i32) - (nop) (call $dummy) (br_table 1 1 1 (i32.const 5) (i32.const 1)) - ) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (br_table 0 (i32.const 9) (i32.const 0)))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (br_table 0 0 0 (i32.const 1)))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (br_table 0 (i32.const 8) (i32.const 0)) (i32.const 1))) - (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (br_table 0 0 (i32.const 9) (i32.const 0)))) - (i32.const 7) - ) - ) - - (func (export "as-br_table-index") - (block (br_table 0 0 0 (br_table 0 (i32.const 1)))) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (br_table 0 (i32.const 10) (i32.const 0)) (i32.const 1)) - (i32.const 7) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (br_table 0 (i32.const 11) (i32.const 1))) - (i32.const 7) - ) - ) - - (func (export "as-return-value") (result i64) - (block (result i64) (return (br_table 0 (i64.const 7) (i32.const 0)))) - ) - - (func (export "as-if-cond") (result i32) - (block (result i32) - (if (result i32) - (br_table 0 (i32.const 2) (i32.const 0)) - (then (i32.const 0)) - (else (i32.const 1)) - ) - ) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) - (local.get 0) - (then (br_table 1 (i32.const 3) (i32.const 0))) - (else (local.get 1)) - ) - ) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) - (local.get 0) - (then (local.get 1)) - (else (br_table 1 0 (i32.const 4) (i32.const 0))) - ) - ) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (block (result i32) - (select - (br_table 0 (i32.const 5) (i32.const 0)) (local.get 0) (local.get 1) - ) - ) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (block (result i32) - (select - (local.get 0) (br_table 0 (i32.const 6) (i32.const 1)) (local.get 1) - ) - ) - ) - (func (export "as-select-cond") (result i32) - (block (result i32) - (select - (i32.const 0) (i32.const 1) (br_table 0 (i32.const 7) (i32.const 1)) - ) - ) - ) - - (func $f (param i32 i32 i32) (result i32) (i32.const -1)) - (func (export "as-call-first") (result i32) - (block (result i32) - (call $f - (br_table 0 (i32.const 12) (i32.const 1)) (i32.const 2) (i32.const 3) - ) - ) - ) - (func (export "as-call-mid") (result i32) - (block (result i32) - (call $f - (i32.const 1) (br_table 0 (i32.const 13) (i32.const 1)) (i32.const 3) - ) - ) - ) - (func (export "as-call-last") (result i32) - (block (result i32) - (call $f - (i32.const 1) (i32.const 2) (br_table 0 (i32.const 14) (i32.const 1)) - ) - ) - ) - - (type $sig (func (param i32 i32 i32) (result i32))) - (table funcref (elem $f)) - (func (export "as-call_indirect-first") (result i32) - (block (result i32) - (call_indirect (type $sig) - (br_table 0 (i32.const 20) (i32.const 1)) (i32.const 1) (i32.const 2) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-mid") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (br_table 0 (i32.const 21) (i32.const 1)) (i32.const 2) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-last") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (br_table 0 (i32.const 22) (i32.const 1)) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-func") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (i32.const 2) - (br_table 0 (i32.const 23) (i32.const 1)) - ) - ) - ) - - (func (export "as-local.set-value") (result i32) - (local f32) - (block (result i32) - (local.set 0 (br_table 0 (i32.const 17) (i32.const 1))) - (i32.const -1) - ) - ) - (func (export "as-local.tee-value") (result i32) - (local i32) - (block (result i32) - (local.set 0 (br_table 0 (i32.const 1) (i32.const 1))) - (i32.const -1) - ) - ) - (global $a (mut i32) (i32.const 10)) - (func (export "as-global.set-value") (result i32) - (block (result i32) - (global.set $a (br_table 0 (i32.const 1) (i32.const 1))) - (i32.const -1) - ) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (block (result f32) (f32.load (br_table 0 (f32.const 1.7) (i32.const 1)))) - ) - (func (export "as-loadN-address") (result i64) - (block (result i64) (i64.load8_s (br_table 0 (i64.const 30) (i32.const 1)))) - ) - - (func (export "as-store-address") (result i32) - (block (result i32) - (f64.store (br_table 0 (i32.const 30) (i32.const 1)) (f64.const 7)) - (i32.const -1) - ) - ) - (func (export "as-store-value") (result i32) - (block (result i32) - (i64.store (i32.const 2) (br_table 0 (i32.const 31) (i32.const 1))) - (i32.const -1) - ) - ) - - (func (export "as-storeN-address") (result i32) - (block (result i32) - (i32.store8 (br_table 0 (i32.const 32) (i32.const 0)) (i32.const 7)) - (i32.const -1) - ) - ) - (func (export "as-storeN-value") (result i32) - (block (result i32) - (i64.store16 (i32.const 2) (br_table 0 (i32.const 33) (i32.const 0))) - (i32.const -1) - ) - ) - - (func (export "as-unary-operand") (result f32) - (block (result f32) (f32.neg (br_table 0 (f32.const 3.4) (i32.const 0)))) - ) - - (func (export "as-binary-left") (result i32) - (block (result i32) - (i32.add (br_table 0 0 (i32.const 3) (i32.const 0)) (i32.const 10)) - ) - ) - (func (export "as-binary-right") (result i64) - (block (result i64) - (i64.sub (i64.const 10) (br_table 0 (i64.const 45) (i32.const 0))) - ) - ) - - (func (export "as-test-operand") (result i32) - (block (result i32) (i32.eqz (br_table 0 (i32.const 44) (i32.const 0)))) - ) - - (func (export "as-compare-left") (result i32) - (block (result i32) - (f64.le (br_table 0 0 (i32.const 43) (i32.const 0)) (f64.const 10)) - ) - ) - (func (export "as-compare-right") (result i32) - (block (result i32) - (f32.ne (f32.const 10) (br_table 0 (i32.const 42) (i32.const 0))) - ) - ) - - (func (export "as-convert-operand") (result i32) - (block (result i32) - (i32.wrap_i64 (br_table 0 (i32.const 41) (i32.const 0))) - ) - ) - - (func (export "as-memory.grow-size") (result i32) - (block (result i32) (memory.grow (br_table 0 (i32.const 40) (i32.const 0)))) - ) - - (func (export "nested-block-value") (param i32) (result i32) - (block (result i32) - (drop (i32.const -1)) - (i32.add - (i32.const 1) - (block (result i32) - (i32.add - (i32.const 2) - (block (result i32) - (drop (i32.const 4)) - (i32.add - (i32.const 8) - (br_table 0 1 2 (i32.const 16) (local.get 0)) - ) - ) - ) - ) - ) - ) - ) - - (func (export "nested-br-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br 0 (br_table 2 1 0 (i32.const 8) (local.get 0))) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_if-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (drop - (br_if 0 - (br_table 0 1 2 (i32.const 8) (local.get 0)) - (i32.const 1) - ) - ) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_if-value-cond") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (br_if 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0))) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br_table 0 (br_table 0 1 2 (i32.const 8) (local.get 0)) (i32.const 1)) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-value-index") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0))) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-loop-block") (param i32) (result i32) - (local.set 0 - (loop (result i32) - (block - (br_table 1 0 0 (local.get 0)) - ) - (i32.const 0) - ) - ) - (loop (result i32) - (block - (br_table 0 1 1 (local.get 0)) - ) - (i32.const 3) - ) - ) -) - -(assert_return (invoke "type-i32")) -(assert_return (invoke "type-i64")) -(assert_return (invoke "type-f32")) -(assert_return (invoke "type-f64")) - -(assert_return (invoke "type-i32-value") (i32.const 1)) -(assert_return (invoke "type-i64-value") (i64.const 2)) -(assert_return (invoke "type-f32-value") (f32.const 3)) -(assert_return (invoke "type-f64-value") (f64.const 4)) - -(assert_return (invoke "empty" (i32.const 0)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 1)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 11)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const -1)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const -100)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 0xffffffff)) (i32.const 22)) - -(assert_return (invoke "empty-value" (i32.const 0)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 1)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 11)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const -1)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const -100)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 0xffffffff)) (i32.const 33)) - -(assert_return (invoke "singleton" (i32.const 0)) (i32.const 22)) -(assert_return (invoke "singleton" (i32.const 1)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const 11)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const -1)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const -100)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const 0xffffffff)) (i32.const 20)) - -(assert_return (invoke "singleton-value" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "singleton-value" (i32.const 1)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const 11)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const -1)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const -100)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const 0xffffffff)) (i32.const 33)) - -(assert_return (invoke "multiple" (i32.const 0)) (i32.const 103)) -(assert_return (invoke "multiple" (i32.const 1)) (i32.const 102)) -(assert_return (invoke "multiple" (i32.const 2)) (i32.const 101)) -(assert_return (invoke "multiple" (i32.const 3)) (i32.const 100)) -(assert_return (invoke "multiple" (i32.const 4)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 5)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 6)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 10)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const -1)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 0xffffffff)) (i32.const 104)) - -(assert_return (invoke "multiple-value" (i32.const 0)) (i32.const 213)) -(assert_return (invoke "multiple-value" (i32.const 1)) (i32.const 212)) -(assert_return (invoke "multiple-value" (i32.const 2)) (i32.const 211)) -(assert_return (invoke "multiple-value" (i32.const 3)) (i32.const 210)) -(assert_return (invoke "multiple-value" (i32.const 4)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 5)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 6)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 10)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const -1)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 0xffffffff)) (i32.const 214)) - -(assert_return (invoke "large" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 100)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 101)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 10000)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 10001)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 1000000)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 1000001)) (i32.const 1)) - -(assert_return (invoke "as-block-first")) -(assert_return (invoke "as-block-mid")) -(assert_return (invoke "as-block-last")) -(assert_return (invoke "as-block-value") (i32.const 2)) - -(assert_return (invoke "as-loop-first") (i32.const 3)) -(assert_return (invoke "as-loop-mid") (i32.const 4)) -(assert_return (invoke "as-loop-last") (i32.const 5)) - -(assert_return (invoke "as-br-value") (i32.const 9)) - -(assert_return (invoke "as-br_if-cond")) -(assert_return (invoke "as-br_if-value") (i32.const 8)) -(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) - -(assert_return (invoke "as-br_table-index")) -(assert_return (invoke "as-br_table-value") (i32.const 10)) -(assert_return (invoke "as-br_table-value-index") (i32.const 11)) - -(assert_return (invoke "as-return-value") (i64.const 7)) - -(assert_return (invoke "as-if-cond") (i32.const 2)) -(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-cond") (i32.const 7)) - -(assert_return (invoke "as-call-first") (i32.const 12)) -(assert_return (invoke "as-call-mid") (i32.const 13)) -(assert_return (invoke "as-call-last") (i32.const 14)) - -(assert_return (invoke "as-call_indirect-first") (i32.const 20)) -(assert_return (invoke "as-call_indirect-mid") (i32.const 21)) -(assert_return (invoke "as-call_indirect-last") (i32.const 22)) -(assert_return (invoke "as-call_indirect-func") (i32.const 23)) - -(assert_return (invoke "as-local.set-value") (i32.const 17)) -(assert_return (invoke "as-local.tee-value") (i32.const 1)) -(assert_return (invoke "as-global.set-value") (i32.const 1)) - -(assert_return (invoke "as-load-address") (f32.const 1.7)) -(assert_return (invoke "as-loadN-address") (i64.const 30)) - -(assert_return (invoke "as-store-address") (i32.const 30)) -(assert_return (invoke "as-store-value") (i32.const 31)) -(assert_return (invoke "as-storeN-address") (i32.const 32)) -(assert_return (invoke "as-storeN-value") (i32.const 33)) - -(assert_return (invoke "as-unary-operand") (f32.const 3.4)) - -(assert_return (invoke "as-binary-left") (i32.const 3)) -(assert_return (invoke "as-binary-right") (i64.const 45)) - -(assert_return (invoke "as-test-operand") (i32.const 44)) - -(assert_return (invoke "as-compare-left") (i32.const 43)) -(assert_return (invoke "as-compare-right") (i32.const 42)) - -(assert_return (invoke "as-convert-operand") (i32.const 41)) - -(assert_return (invoke "as-memory.grow-size") (i32.const 40)) - -(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 19)) -(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 17)) -(assert_return (invoke "nested-block-value" (i32.const 2)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const 10)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const -1)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const 100000)) (i32.const 16)) - -(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 8)) -(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br-value" (i32.const 2)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const 11)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const -4)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const 10213210)) (i32.const 17)) - -(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 17)) -(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value" (i32.const 2)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const 9)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const -9)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const 999999)) (i32.const 8)) - -(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 3)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const -1000000)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 9423975)) (i32.const 9)) - -(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 17)) -(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value" (i32.const 2)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const 9)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const -9)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const 999999)) (i32.const 8)) - -(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 3)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const -1000000)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 9423975)) (i32.const 9)) - -(assert_return (invoke "nested-br_table-loop-block" (i32.const 1)) (i32.const 3)) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (br_table 0 (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-empty-vs-num (result i32) - (block (br_table 0) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (result i32) (br_table 0 (nop) (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-num (result i32) - (block (result i32) - (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-arg-num - (block - (block (result f32) - (br_table 0 1 (f32.const 0) (i32.const 0)) - ) - (drop) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func - (block (result i32) - (block (result i64) - (br_table 0 1 (i32.const 0) (i32.const 0)) - ) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-index-void-vs-i32 - (block (br_table 0 0 0 (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-index-num-vs-i32 - (block (br_table 0 (i64.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-index-void-vs-i32 (result i32) - (block (result i32) (br_table 0 0 (i32.const 0) (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-void-vs-num-nested (result i32) - (block (result i32) (i32.const 0) (block (br_table 1 (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-index-num-vs-i32 (result i32) - (block (result i32) - (br_table 0 0 (i32.const 0) (i64.const 0)) (i32.const 1) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (br_table 0 (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module - (func $type-arg-index-empty-in-then - (block - (i32.const 0) (i32.const 0) - (if (result i32) (then (br_table 0))) - ) - (i32.eqz) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-arg-value-empty-in-then - (block - (i32.const 0) (i32.const 0) - (if (result i32) (then (br_table 0 (i32.const 1)))) - ) - (i32.eqz) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-arg-index-empty-in-return - (block (result i32) - (return (br_table 0)) - ) - (i32.eqz) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-arg-value-empty-in-return - (block (result i32) - (return (br_table 0 (i32.const 1))) - ) - (i32.eqz) (drop) - ) - ) - "type mismatch" -) - -(assert_invalid - (module - (func (param i32) (result i32) - (loop (result i32) - (block (result i32) - (br_table 0 1 (i32.const 1) (local.get 0)) - ) - ) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func (param i32) (result i32) - (block (result i32) - (loop (result i32) - (br_table 0 1 (i32.const 1) (local.get 0)) - ) - ) - ) - ) - "type mismatch" -) - - -(assert_invalid - (module (func $unbound-label - (block (br_table 2 1 (i32.const 1))) - )) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label - (block (block (br_table 0 5 (i32.const 1)))) - )) - "unknown label" -) -(assert_invalid - (module (func $large-label - (block (br_table 0 0x10000001 0 (i32.const 1))) - )) - "unknown label" -) - -(assert_invalid - (module (func $unbound-label-default - (block (br_table 1 2 (i32.const 1))) - )) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label-default - (block (block (br_table 0 5 (i32.const 1)))) - )) - "unknown label" -) -(assert_invalid - (module (func $large-label-default - (block (br_table 0 0 0x10000001 (i32.const 1))) - )) - "unknown label" -) \ No newline at end of file +;; Test `br_table` operator + +(module + ;; Auxiliary definition + (func $dummy) + + (func (export "type-i32") + (block (drop (i32.ctz (br_table 0 0 (i32.const 0))))) + ) + (func (export "type-i64") + (block (drop (i64.ctz (br_table 0 0 (i32.const 0))))) + ) + (func (export "type-f32") + (block (drop (f32.neg (br_table 0 0 (i32.const 0))))) + ) + (func (export "type-f64") + (block (drop (f64.neg (br_table 0 0 (i32.const 0))))) + ) + + (func (export "type-i32-value") (result i32) + (block (result i32) (i32.ctz (br_table 0 0 (i32.const 1) (i32.const 0)))) + ) + (func (export "type-i64-value") (result i64) + (block (result i64) (i64.ctz (br_table 0 0 (i64.const 2) (i32.const 0)))) + ) + (func (export "type-f32-value") (result f32) + (block (result f32) (f32.neg (br_table 0 0 (f32.const 3) (i32.const 0)))) + ) + (func (export "type-f64-value") (result f64) + (block (result f64) (f64.neg (br_table 0 0 (f64.const 4) (i32.const 0)))) + ) + + (func (export "empty") (param i32) (result i32) + (block (br_table 0 (local.get 0)) (return (i32.const 21))) + (i32.const 22) + ) + (func (export "empty-value") (param i32) (result i32) + (block (result i32) + (br_table 0 (i32.const 33) (local.get 0)) (i32.const 31) + ) + ) + + (func (export "singleton") (param i32) (result i32) + (block + (block + (br_table 1 0 (local.get 0)) + (return (i32.const 21)) + ) + (return (i32.const 20)) + ) + (i32.const 22) + ) + + (func (export "singleton-value") (param i32) (result i32) + (block (result i32) + (drop + (block (result i32) + (br_table 0 1 (i32.const 33) (local.get 0)) + (return (i32.const 31)) + ) + ) + (i32.const 32) + ) + ) + + (func (export "multiple") (param i32) (result i32) + (block + (block + (block + (block + (block + (br_table 3 2 1 0 4 (local.get 0)) + (return (i32.const 99)) + ) + (return (i32.const 100)) + ) + (return (i32.const 101)) + ) + (return (i32.const 102)) + ) + (return (i32.const 103)) + ) + (i32.const 104) + ) + + (func (export "multiple-value") (param i32) (result i32) + (local i32) + (local.set 1 (block (result i32) + (local.set 1 (block (result i32) + (local.set 1 (block (result i32) + (local.set 1 (block (result i32) + (local.set 1 (block (result i32) + (br_table 3 2 1 0 4 (i32.const 200) (local.get 0)) + (return (i32.add (local.get 1) (i32.const 99))) + )) + (return (i32.add (local.get 1) (i32.const 10))) + )) + (return (i32.add (local.get 1) (i32.const 11))) + )) + (return (i32.add (local.get 1) (i32.const 12))) + )) + (return (i32.add (local.get 1) (i32.const 13))) + )) + (i32.add (local.get 1) (i32.const 14)) + ) + + (func (export "large") (param i32) (result i32) + (block + (block + (br_table + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + (local.get 0) + ) + (return (i32.const -1)) + ) + (return (i32.const 0)) + ) + (return (i32.const 1)) + ) + + (func (export "as-block-first") + (block (br_table 0 0 0 (i32.const 0)) (call $dummy)) + ) + (func (export "as-block-mid") + (block (call $dummy) (br_table 0 0 0 (i32.const 0)) (call $dummy)) + ) + (func (export "as-block-last") + (block (nop) (call $dummy) (br_table 0 0 0 (i32.const 0))) + ) + (func (export "as-block-value") (result i32) + (block (result i32) + (nop) (call $dummy) (br_table 0 0 0 (i32.const 2) (i32.const 0)) + ) + ) + + (func (export "as-loop-first") (result i32) + (loop (result i32) (br_table 1 1 (i32.const 3) (i32.const 0)) (i32.const 1)) + ) + (func (export "as-loop-mid") (result i32) + (loop (result i32) + (call $dummy) + (br_table 1 1 1 (i32.const 4) (i32.const -1)) + (i32.const 2) + ) + ) + (func (export "as-loop-last") (result i32) + (loop (result i32) + (nop) (call $dummy) (br_table 1 1 1 (i32.const 5) (i32.const 1)) + ) + ) + + (func (export "as-br-value") (result i32) + (block (result i32) (br 0 (br_table 0 (i32.const 9) (i32.const 0)))) + ) + + (func (export "as-br_if-cond") + (block (br_if 0 (br_table 0 0 0 (i32.const 1)))) + ) + (func (export "as-br_if-value") (result i32) + (block (result i32) + (drop (br_if 0 (br_table 0 (i32.const 8) (i32.const 0)) (i32.const 1))) + (i32.const 7) + ) + ) + (func (export "as-br_if-value-cond") (result i32) + (block (result i32) + (drop (br_if 0 (i32.const 6) (br_table 0 0 (i32.const 9) (i32.const 0)))) + (i32.const 7) + ) + ) + + (func (export "as-br_table-index") + (block (br_table 0 0 0 (br_table 0 (i32.const 1)))) + ) + (func (export "as-br_table-value") (result i32) + (block (result i32) + (br_table 0 0 0 (br_table 0 (i32.const 10) (i32.const 0)) (i32.const 1)) + (i32.const 7) + ) + ) + (func (export "as-br_table-value-index") (result i32) + (block (result i32) + (br_table 0 0 (i32.const 6) (br_table 0 (i32.const 11) (i32.const 1))) + (i32.const 7) + ) + ) + + (func (export "as-return-value") (result i64) + (block (result i64) (return (br_table 0 (i64.const 7) (i32.const 0)))) + ) + + (func (export "as-if-cond") (result i32) + (block (result i32) + (if (result i32) + (br_table 0 (i32.const 2) (i32.const 0)) + (then (i32.const 0)) + (else (i32.const 1)) + ) + ) + ) + (func (export "as-if-then") (param i32 i32) (result i32) + (block (result i32) + (if (result i32) + (local.get 0) + (then (br_table 1 (i32.const 3) (i32.const 0))) + (else (local.get 1)) + ) + ) + ) + (func (export "as-if-else") (param i32 i32) (result i32) + (block (result i32) + (if (result i32) + (local.get 0) + (then (local.get 1)) + (else (br_table 1 0 (i32.const 4) (i32.const 0))) + ) + ) + ) + + (func (export "as-select-first") (param i32 i32) (result i32) + (block (result i32) + (select + (br_table 0 (i32.const 5) (i32.const 0)) (local.get 0) (local.get 1) + ) + ) + ) + (func (export "as-select-second") (param i32 i32) (result i32) + (block (result i32) + (select + (local.get 0) (br_table 0 (i32.const 6) (i32.const 1)) (local.get 1) + ) + ) + ) + (func (export "as-select-cond") (result i32) + (block (result i32) + (select + (i32.const 0) (i32.const 1) (br_table 0 (i32.const 7) (i32.const 1)) + ) + ) + ) + + (func $f (param i32 i32 i32) (result i32) (i32.const -1)) + (func (export "as-call-first") (result i32) + (block (result i32) + (call $f + (br_table 0 (i32.const 12) (i32.const 1)) (i32.const 2) (i32.const 3) + ) + ) + ) + (func (export "as-call-mid") (result i32) + (block (result i32) + (call $f + (i32.const 1) (br_table 0 (i32.const 13) (i32.const 1)) (i32.const 3) + ) + ) + ) + (func (export "as-call-last") (result i32) + (block (result i32) + (call $f + (i32.const 1) (i32.const 2) (br_table 0 (i32.const 14) (i32.const 1)) + ) + ) + ) + + (type $sig (func (param i32 i32 i32) (result i32))) + (table funcref (elem $f)) + (func (export "as-call_indirect-first") (result i32) + (block (result i32) + (call_indirect (type $sig) + (br_table 0 (i32.const 20) (i32.const 1)) (i32.const 1) (i32.const 2) + (i32.const 3) + ) + ) + ) + (func (export "as-call_indirect-mid") (result i32) + (block (result i32) + (call_indirect (type $sig) + (i32.const 0) (br_table 0 (i32.const 21) (i32.const 1)) (i32.const 2) + (i32.const 3) + ) + ) + ) + (func (export "as-call_indirect-last") (result i32) + (block (result i32) + (call_indirect (type $sig) + (i32.const 0) (i32.const 1) (br_table 0 (i32.const 22) (i32.const 1)) + (i32.const 3) + ) + ) + ) + (func (export "as-call_indirect-func") (result i32) + (block (result i32) + (call_indirect (type $sig) + (i32.const 0) (i32.const 1) (i32.const 2) + (br_table 0 (i32.const 23) (i32.const 1)) + ) + ) + ) + + (func (export "as-local.set-value") (result i32) + (local f32) + (block (result i32) + (local.set 0 (br_table 0 (i32.const 17) (i32.const 1))) + (i32.const -1) + ) + ) + (func (export "as-local.tee-value") (result i32) + (local i32) + (block (result i32) + (local.set 0 (br_table 0 (i32.const 1) (i32.const 1))) + (i32.const -1) + ) + ) + (global $a (mut i32) (i32.const 10)) + (func (export "as-global.set-value") (result i32) + (block (result i32) + (global.set $a (br_table 0 (i32.const 1) (i32.const 1))) + (i32.const -1) + ) + ) + + (memory 1) + (func (export "as-load-address") (result f32) + (block (result f32) (f32.load (br_table 0 (f32.const 1.7) (i32.const 1)))) + ) + (func (export "as-loadN-address") (result i64) + (block (result i64) (i64.load8_s (br_table 0 (i64.const 30) (i32.const 1)))) + ) + + (func (export "as-store-address") (result i32) + (block (result i32) + (f64.store (br_table 0 (i32.const 30) (i32.const 1)) (f64.const 7)) + (i32.const -1) + ) + ) + (func (export "as-store-value") (result i32) + (block (result i32) + (i64.store (i32.const 2) (br_table 0 (i32.const 31) (i32.const 1))) + (i32.const -1) + ) + ) + + (func (export "as-storeN-address") (result i32) + (block (result i32) + (i32.store8 (br_table 0 (i32.const 32) (i32.const 0)) (i32.const 7)) + (i32.const -1) + ) + ) + (func (export "as-storeN-value") (result i32) + (block (result i32) + (i64.store16 (i32.const 2) (br_table 0 (i32.const 33) (i32.const 0))) + (i32.const -1) + ) + ) + + (func (export "as-unary-operand") (result f32) + (block (result f32) (f32.neg (br_table 0 (f32.const 3.4) (i32.const 0)))) + ) + + (func (export "as-binary-left") (result i32) + (block (result i32) + (i32.add (br_table 0 0 (i32.const 3) (i32.const 0)) (i32.const 10)) + ) + ) + (func (export "as-binary-right") (result i64) + (block (result i64) + (i64.sub (i64.const 10) (br_table 0 (i64.const 45) (i32.const 0))) + ) + ) + + (func (export "as-test-operand") (result i32) + (block (result i32) (i32.eqz (br_table 0 (i32.const 44) (i32.const 0)))) + ) + + (func (export "as-compare-left") (result i32) + (block (result i32) + (f64.le (br_table 0 0 (i32.const 43) (i32.const 0)) (f64.const 10)) + ) + ) + (func (export "as-compare-right") (result i32) + (block (result i32) + (f32.ne (f32.const 10) (br_table 0 (i32.const 42) (i32.const 0))) + ) + ) + + (func (export "as-convert-operand") (result i32) + (block (result i32) + (i32.wrap_i64 (br_table 0 (i32.const 41) (i32.const 0))) + ) + ) + + (func (export "as-memory.grow-size") (result i32) + (block (result i32) (memory.grow (br_table 0 (i32.const 40) (i32.const 0)))) + ) + + (func (export "nested-block-value") (param i32) (result i32) + (block (result i32) + (drop (i32.const -1)) + (i32.add + (i32.const 1) + (block (result i32) + (i32.add + (i32.const 2) + (block (result i32) + (drop (i32.const 4)) + (i32.add + (i32.const 8) + (br_table 0 1 2 (i32.const 16) (local.get 0)) + ) + ) + ) + ) + ) + ) + ) + + (func (export "nested-br-value") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (drop + (block (result i32) + (drop (i32.const 4)) + (br 0 (br_table 2 1 0 (i32.const 8) (local.get 0))) + ) + ) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_if-value") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (drop + (block (result i32) + (drop (i32.const 4)) + (drop + (br_if 0 + (br_table 0 1 2 (i32.const 8) (local.get 0)) + (i32.const 1) + ) + ) + (i32.const 32) + ) + ) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_if-value-cond") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (drop + (br_if 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0))) + ) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_table-value") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (drop + (block (result i32) + (drop (i32.const 4)) + (br_table 0 (br_table 0 1 2 (i32.const 8) (local.get 0)) (i32.const 1)) + (i32.const 32) + ) + ) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_table-value-index") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (br_table 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0))) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_table-loop-block") (param i32) (result i32) + (local.set 0 + (loop (result i32) + (block + (br_table 1 0 0 (local.get 0)) + ) + (i32.const 0) + ) + ) + (loop (result i32) + (block + (br_table 0 1 1 (local.get 0)) + ) + (i32.const 3) + ) + ) + + ;; W2C2: No support for externref + ;; (func (export "meet-externref") (param i32) (param externref) (result externref) + ;; (block $l1 (result externref) + ;; (block $l2 (result externref) + ;; (br_table $l1 $l2 $l1 (local.get 1) (local.get 0)) + ;; ) + ;; ) + ;; ) +) + +(assert_return (invoke "type-i32")) +(assert_return (invoke "type-i64")) +(assert_return (invoke "type-f32")) +(assert_return (invoke "type-f64")) + +(assert_return (invoke "type-i32-value") (i32.const 1)) +(assert_return (invoke "type-i64-value") (i64.const 2)) +(assert_return (invoke "type-f32-value") (f32.const 3)) +(assert_return (invoke "type-f64-value") (f64.const 4)) + +(assert_return (invoke "empty" (i32.const 0)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const 1)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const 11)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const -1)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const -100)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const 0xffffffff)) (i32.const 22)) + +(assert_return (invoke "empty-value" (i32.const 0)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const 1)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const 11)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const -1)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const -100)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const 0xffffffff)) (i32.const 33)) + +(assert_return (invoke "singleton" (i32.const 0)) (i32.const 22)) +(assert_return (invoke "singleton" (i32.const 1)) (i32.const 20)) +(assert_return (invoke "singleton" (i32.const 11)) (i32.const 20)) +(assert_return (invoke "singleton" (i32.const -1)) (i32.const 20)) +(assert_return (invoke "singleton" (i32.const -100)) (i32.const 20)) +(assert_return (invoke "singleton" (i32.const 0xffffffff)) (i32.const 20)) + +(assert_return (invoke "singleton-value" (i32.const 0)) (i32.const 32)) +(assert_return (invoke "singleton-value" (i32.const 1)) (i32.const 33)) +(assert_return (invoke "singleton-value" (i32.const 11)) (i32.const 33)) +(assert_return (invoke "singleton-value" (i32.const -1)) (i32.const 33)) +(assert_return (invoke "singleton-value" (i32.const -100)) (i32.const 33)) +(assert_return (invoke "singleton-value" (i32.const 0xffffffff)) (i32.const 33)) + +(assert_return (invoke "multiple" (i32.const 0)) (i32.const 103)) +(assert_return (invoke "multiple" (i32.const 1)) (i32.const 102)) +(assert_return (invoke "multiple" (i32.const 2)) (i32.const 101)) +(assert_return (invoke "multiple" (i32.const 3)) (i32.const 100)) +(assert_return (invoke "multiple" (i32.const 4)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const 5)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const 6)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const 10)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const -1)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const 0xffffffff)) (i32.const 104)) + +(assert_return (invoke "multiple-value" (i32.const 0)) (i32.const 213)) +(assert_return (invoke "multiple-value" (i32.const 1)) (i32.const 212)) +(assert_return (invoke "multiple-value" (i32.const 2)) (i32.const 211)) +(assert_return (invoke "multiple-value" (i32.const 3)) (i32.const 210)) +(assert_return (invoke "multiple-value" (i32.const 4)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const 5)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const 6)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const 10)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const -1)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const 0xffffffff)) (i32.const 214)) + +(assert_return (invoke "large" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "large" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "large" (i32.const 100)) (i32.const 0)) +(assert_return (invoke "large" (i32.const 101)) (i32.const 1)) +(assert_return (invoke "large" (i32.const 10000)) (i32.const 0)) +(assert_return (invoke "large" (i32.const 10001)) (i32.const 1)) +(assert_return (invoke "large" (i32.const 1000000)) (i32.const 1)) +(assert_return (invoke "large" (i32.const 1000001)) (i32.const 1)) + +(assert_return (invoke "as-block-first")) +(assert_return (invoke "as-block-mid")) +(assert_return (invoke "as-block-last")) +(assert_return (invoke "as-block-value") (i32.const 2)) + +(assert_return (invoke "as-loop-first") (i32.const 3)) +(assert_return (invoke "as-loop-mid") (i32.const 4)) +(assert_return (invoke "as-loop-last") (i32.const 5)) + +(assert_return (invoke "as-br-value") (i32.const 9)) + +(assert_return (invoke "as-br_if-cond")) +(assert_return (invoke "as-br_if-value") (i32.const 8)) +(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) + +(assert_return (invoke "as-br_table-index")) +(assert_return (invoke "as-br_table-value") (i32.const 10)) +(assert_return (invoke "as-br_table-value-index") (i32.const 11)) + +(assert_return (invoke "as-return-value") (i64.const 7)) + +(assert_return (invoke "as-if-cond") (i32.const 2)) +(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) +(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) +(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) +(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) + +(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) +(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) +(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) +(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) +(assert_return (invoke "as-select-cond") (i32.const 7)) + +(assert_return (invoke "as-call-first") (i32.const 12)) +(assert_return (invoke "as-call-mid") (i32.const 13)) +(assert_return (invoke "as-call-last") (i32.const 14)) + +(assert_return (invoke "as-call_indirect-first") (i32.const 20)) +(assert_return (invoke "as-call_indirect-mid") (i32.const 21)) +(assert_return (invoke "as-call_indirect-last") (i32.const 22)) +(assert_return (invoke "as-call_indirect-func") (i32.const 23)) + +(assert_return (invoke "as-local.set-value") (i32.const 17)) +(assert_return (invoke "as-local.tee-value") (i32.const 1)) +(assert_return (invoke "as-global.set-value") (i32.const 1)) + +(assert_return (invoke "as-load-address") (f32.const 1.7)) +(assert_return (invoke "as-loadN-address") (i64.const 30)) + +(assert_return (invoke "as-store-address") (i32.const 30)) +(assert_return (invoke "as-store-value") (i32.const 31)) +(assert_return (invoke "as-storeN-address") (i32.const 32)) +(assert_return (invoke "as-storeN-value") (i32.const 33)) + +(assert_return (invoke "as-unary-operand") (f32.const 3.4)) + +(assert_return (invoke "as-binary-left") (i32.const 3)) +(assert_return (invoke "as-binary-right") (i64.const 45)) + +(assert_return (invoke "as-test-operand") (i32.const 44)) + +(assert_return (invoke "as-compare-left") (i32.const 43)) +(assert_return (invoke "as-compare-right") (i32.const 42)) + +(assert_return (invoke "as-convert-operand") (i32.const 41)) + +(assert_return (invoke "as-memory.grow-size") (i32.const 40)) + +(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 19)) +(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 17)) +(assert_return (invoke "nested-block-value" (i32.const 2)) (i32.const 16)) +(assert_return (invoke "nested-block-value" (i32.const 10)) (i32.const 16)) +(assert_return (invoke "nested-block-value" (i32.const -1)) (i32.const 16)) +(assert_return (invoke "nested-block-value" (i32.const 100000)) (i32.const 16)) + +(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 8)) +(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9)) +(assert_return (invoke "nested-br-value" (i32.const 2)) (i32.const 17)) +(assert_return (invoke "nested-br-value" (i32.const 11)) (i32.const 17)) +(assert_return (invoke "nested-br-value" (i32.const -4)) (i32.const 17)) +(assert_return (invoke "nested-br-value" (i32.const 10213210)) (i32.const 17)) + +(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 17)) +(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value" (i32.const 2)) (i32.const 8)) +(assert_return (invoke "nested-br_if-value" (i32.const 9)) (i32.const 8)) +(assert_return (invoke "nested-br_if-value" (i32.const -9)) (i32.const 8)) +(assert_return (invoke "nested-br_if-value" (i32.const 999999)) (i32.const 8)) + +(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 8)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const 2)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const 3)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const -1000000)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const 9423975)) (i32.const 9)) + +(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 17)) +(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value" (i32.const 2)) (i32.const 8)) +(assert_return (invoke "nested-br_table-value" (i32.const 9)) (i32.const 8)) +(assert_return (invoke "nested-br_table-value" (i32.const -9)) (i32.const 8)) +(assert_return (invoke "nested-br_table-value" (i32.const 999999)) (i32.const 8)) + +(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 8)) +(assert_return (invoke "nested-br_table-value-index" (i32.const 2)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value-index" (i32.const 3)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value-index" (i32.const -1000000)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value-index" (i32.const 9423975)) (i32.const 9)) + +(assert_return (invoke "nested-br_table-loop-block" (i32.const 1)) (i32.const 3)) + +;; W2C2: No support for externref +;; (assert_return (invoke "meet-externref" (i32.const 0) (ref.extern 1)) (ref.extern 1)) +;; (assert_return (invoke "meet-externref" (i32.const 1) (ref.extern 1)) (ref.extern 1)) +;; (assert_return (invoke "meet-externref" (i32.const 2) (ref.extern 1)) (ref.extern 1)) + +(assert_invalid + (module (func $type-arg-void-vs-num (result i32) + (block (br_table 0 (i32.const 1)) (i32.const 1)) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-arg-empty-vs-num (result i32) + (block (br_table 0) (i32.const 1)) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-arg-void-vs-num (result i32) + (block (result i32) (br_table 0 (nop) (i32.const 1)) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-num-vs-num (result i32) + (block (result i32) + (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-num-vs-arg-num + (block + (block (result f32) + (br_table 0 1 (f32.const 0) (i32.const 0)) + ) + (drop) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func + (block (result i32) + (block (result i64) + (br_table 0 1 (i32.const 0) (i32.const 0)) + ) + ) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-index-void-vs-i32 + (block (br_table 0 0 0 (nop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-index-num-vs-i32 + (block (br_table 0 (i64.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-index-void-vs-i32 (result i32) + (block (result i32) (br_table 0 0 (i32.const 0) (nop)) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-void-vs-num-nested (result i32) + (block (result i32) (i32.const 0) (block (br_table 1 (i32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-index-num-vs-i32 (result i32) + (block (result i32) + (br_table 0 0 (i32.const 0) (i64.const 0)) (i32.const 1) + ) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-arg-void-vs-num (result i32) + (block (br_table 0 (i32.const 1)) (i32.const 1)) + )) + "type mismatch" +) + +(assert_invalid + (module + (func $type-arg-index-empty-in-then + (block + (i32.const 0) (i32.const 0) + (if (result i32) (then (br_table 0))) + ) + (i32.eqz) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-arg-value-empty-in-then + (block + (i32.const 0) (i32.const 0) + (if (result i32) (then (br_table 0 (i32.const 1)))) + ) + (i32.eqz) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-arg-index-empty-in-return + (block (result i32) + (return (br_table 0)) + ) + (i32.eqz) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-arg-value-empty-in-return + (block (result i32) + (return (br_table 0 (i32.const 1))) + ) + (i32.eqz) (drop) + ) + ) + "type mismatch" +) + +(assert_invalid + (module + (func (param i32) (result i32) + (loop (result i32) + (block (result i32) + (br_table 0 1 (i32.const 1) (local.get 0)) + ) + ) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func (param i32) (result i32) + (block (result i32) + (loop (result i32) + (br_table 0 1 (i32.const 1) (local.get 0)) + ) + ) + ) + ) + "type mismatch" +) + + +(assert_invalid + (module (func $unbound-label + (block (br_table 2 1 (i32.const 1))) + )) + "unknown label" +) +(assert_invalid + (module (func $unbound-nested-label + (block (block (br_table 0 5 (i32.const 1)))) + )) + "unknown label" +) +(assert_invalid + (module (func $large-label + (block (br_table 0 0x10000001 0 (i32.const 1))) + )) + "unknown label" +) + +(assert_invalid + (module (func $unbound-label-default + (block (br_table 1 2 (i32.const 1))) + )) + "unknown label" +) +(assert_invalid + (module (func $unbound-nested-label-default + (block (block (br_table 0 5 (i32.const 1)))) + )) + "unknown label" +) +(assert_invalid + (module (func $large-label-default + (block (br_table 0 0 0x10000001 (i32.const 1))) + )) + "unknown label" +) + diff --git a/tests/bulk.wast b/tests/bulk.wast index 15910e3..659374f 100644 --- a/tests/bulk.wast +++ b/tests/bulk.wast @@ -3,7 +3,7 @@ (memory 1) (data "foo")) -;; TODO: +;; W2C2: No support for reference types ;; (module ;; (table 3 funcref) ;; (elem funcref (ref.func 0) (ref.null func) (ref.func 1)) @@ -196,7 +196,7 @@ ;; No memory is required for the data.drop instruction. (module (data "goodbye") (func (data.drop 0))) -;; TODO: +;; W2C2: No support for reference types ;; ;; table.init ;; (module ;; (table 3 funcref) diff --git a/tests/call.wast b/tests/call.wast index 4d0f1a7..3433869 100644 --- a/tests/call.wast +++ b/tests/call.wast @@ -6,11 +6,27 @@ (func $const-i64 (result i64) (i64.const 0x164)) (func $const-f32 (result f32) (f32.const 0xf32)) (func $const-f64 (result f64) (f64.const 0xf64)) + ;; W2C2: No support for functions with multiple return values + ;; (func $const-i32-i64 (result i32 i64) (i32.const 0x132) (i64.const 0x164)) (func $id-i32 (param i32) (result i32) (local.get 0)) (func $id-i64 (param i64) (result i64) (local.get 0)) (func $id-f32 (param f32) (result f32) (local.get 0)) (func $id-f64 (param f64) (result f64) (local.get 0)) + ;; W2C2: No support for functions with multiple return values + ;; (func $id-i32-f64 (param i32 f64) (result i32 f64) + ;; (local.get 0) (local.get 1) + ;; ) + ;; + ;; (func $swap-i32-i32 (param i32 i32) (result i32 i32) + ;; (local.get 1) (local.get 0) + ;; ) + ;; (func $swap-f32-f64 (param f32 f64) (result f64 f32) + ;; (local.get 1) (local.get 0) + ;; ) + ;; (func $swap-f64-i32 (param f64 i32) (result i32 f64) + ;; (local.get 1) (local.get 0) + ;; ) (func $f32-i32 (param f32 i32) (result i32) (local.get 1)) (func $i32-i64 (param i32 i64) (result i64) (local.get 1)) @@ -23,6 +39,8 @@ (func (export "type-i64") (result i64) (call $const-i64)) (func (export "type-f32") (result f32) (call $const-f32)) (func (export "type-f64") (result f64) (call $const-f64)) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "type-i32-i64") (result i32 i64) (call $const-i32-i64)) (func (export "type-first-i32") (result i32) (call $id-i32 (i32.const 32))) (func (export "type-first-i64") (result i64) (call $id-i64 (i64.const 64))) @@ -42,6 +60,37 @@ (call $i64-f64 (i64.const 64) (f64.const 64.1)) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "type-all-i32-f64") (result i32 f64) + ;; (call $id-i32-f64 (i32.const 32) (f64.const 1.64)) + ;; ) + ;; (func (export "type-all-i32-i32") (result i32 i32) + ;; (call $swap-i32-i32 (i32.const 1) (i32.const 2)) + ;; ) + ;; (func (export "type-all-f32-f64") (result f64 f32) + ;; (call $swap-f32-f64 (f32.const 1) (f64.const 2)) + ;; ) + ;; (func (export "type-all-f64-i32") (result i32 f64) + ;; (call $swap-f64-i32 (f64.const 1) (i32.const 2)) + ;; ) + ;; + ;; ;; Composition + ;; + ;; (func (export "as-binary-all-operands") (result i32) + ;; (i32.add (call $swap-i32-i32 (i32.const 3) (i32.const 4))) + ;; ) + ;; + ;; (func (export "as-mixed-operands") (result i32) + ;; (call $swap-i32-i32 (i32.const 3) (i32.const 4)) + ;; (i32.const 5) + ;; (i32.add) + ;; (i32.mul) + ;; ) + ;; + ;; (func (export "as-call-all-operands") (result i32 i32) + ;; (call $swap-i32-i32 (call $swap-i32-i32 (i32.const 3) (i32.const 4))) + ;; ) + ;; Recursion (func $fac (export "fac") (param i64) (result i64) @@ -241,6 +290,8 @@ (assert_return (invoke "type-i64") (i64.const 0x164)) (assert_return (invoke "type-f32") (f32.const 0xf32)) (assert_return (invoke "type-f64") (f64.const 0xf64)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "type-i32-i64") (i32.const 0x132) (i64.const 0x164)) (assert_return (invoke "type-first-i32") (i32.const 32)) (assert_return (invoke "type-first-i64") (i64.const 64)) @@ -252,6 +303,16 @@ (assert_return (invoke "type-second-f32") (f32.const 32)) (assert_return (invoke "type-second-f64") (f64.const 64.1)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "type-all-i32-f64") (i32.const 32) (f64.const 1.64)) +;; (assert_return (invoke "type-all-i32-i32") (i32.const 2) (i32.const 1)) +;; (assert_return (invoke "type-all-f32-f64") (f64.const 2) (f32.const 1)) +;; (assert_return (invoke "type-all-f64-i32") (i32.const 2) (f64.const 1)) +;; +;; (assert_return (invoke "as-binary-all-operands") (i32.const 7)) +;; (assert_return (invoke "as-mixed-operands") (i32.const 32)) +;; (assert_return (invoke "as-call-all-operands") (i32.const 3) (i32.const 4)) + (assert_return (invoke "fac" (i64.const 0)) (i64.const 1)) (assert_return (invoke "fac" (i64.const 1)) (i64.const 1)) (assert_return (invoke "fac" (i64.const 5)) (i64.const 120)) diff --git a/tests/call_indirect.wast b/tests/call_indirect.wast index a899cea..db1cdb9 100644 --- a/tests/call_indirect.wast +++ b/tests/call_indirect.wast @@ -7,10 +7,15 @@ (type $out-i64 (func (result i64))) (type $out-f32 (func (result f32))) (type $out-f64 (func (result f64))) + ;; W2C2: No support for functions with multiple return values + ;; (type $out-f64-i32 (func (result f64 i32))) (type $over-i32 (func (param i32) (result i32))) (type $over-i64 (func (param i64) (result i64))) (type $over-f32 (func (param f32) (result f32))) (type $over-f64 (func (param f64) (result f64))) + ;; W2C2: No support for functions with multiple return values + ;; (type $over-i32-f64 (func (param i32 f64) (result i32 f64))) + ;; (type $swap-i32-i64 (func (param i32 i64) (result i64 i32))) (type $f32-i32 (func (param f32 i32) (result i32))) (type $i32-i64 (func (param i32 i64) (result i64))) (type $f64-f32 (func (param f64 f32) (result f32))) @@ -24,11 +29,16 @@ (func $const-i64 (type $out-i64) (i64.const 0x164)) (func $const-f32 (type $out-f32) (f32.const 0xf32)) (func $const-f64 (type $out-f64) (f64.const 0xf64)) + ;; W2C2: No support for functions with multiple return values + ;; (func $const-f64-i32 (type $out-f64-i32) (f64.const 0xf64) (i32.const 32)) (func $id-i32 (type $over-i32) (local.get 0)) (func $id-i64 (type $over-i64) (local.get 0)) (func $id-f32 (type $over-f32) (local.get 0)) (func $id-f64 (type $over-f64) (local.get 0)) + ;; W2C2: No support for functions with multiple return values + ;; (func $id-i32-f64 (type $over-i32-f64) (local.get 0) (local.get 1)) + ;; (func $swap-i32-i64 (type $swap-i32-i64) (local.get 1) (local.get 0)) (func $i32-i64 (type $i32-i64) (local.get 1)) (func $i64-f64 (type $i64-f64) (local.get 1)) @@ -42,15 +52,17 @@ (table funcref (elem - $const-i32 $const-i64 $const-f32 $const-f64 - $id-i32 $id-i64 $id-f32 $id-f64 - $f32-i32 $i32-i64 $f64-f32 $i64-f64 - $fac-i64 $fib-i64 $even $odd - $runaway $mutual-runaway1 $mutual-runaway2 - $over-i32-duplicate $over-i64-duplicate - $over-f32-duplicate $over-f64-duplicate - $fac-i32 $fac-f32 $fac-f64 - $fib-i32 $fib-f32 $fib-f64 + $const-i32 $const-i64 $const-f32 $const-f64 ;; 0..3 + $id-i32 $id-i64 $id-f32 $id-f64 ;; 4..7 + $f32-i32 $i32-i64 $f64-f32 $i64-f64 ;; 9..11 + $fac-i64 $fib-i64 $even $odd ;; 12..15 + $runaway $mutual-runaway1 $mutual-runaway2 ;; 16..18 + $over-i32-duplicate $over-i64-duplicate ;; 19..20 + $over-f32-duplicate $over-f64-duplicate ;; 21..22 + $fac-i32 $fac-f32 $fac-f64 ;; 23..25 + $fib-i32 $fib-f32 $fib-f64 ;; 26..28 + ;; W2C2: No support for functions with multiple return values + ;; $const-f64-i32 $id-i32-f64 $swap-i32-i64 ;; 29..31 ) ) @@ -96,6 +108,10 @@ (func (export "type-f64") (result f64) (call_indirect (type $out-f64) (i32.const 3)) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "type-f64-i32") (result f64 i32) + ;; (call_indirect (type $out-f64-i32) (i32.const 29)) + ;; ) (func (export "type-index") (result i64) (call_indirect (type $over-i64) (i64.const 100) (i32.const 5)) @@ -127,6 +143,21 @@ (call_indirect (type $i64-f64) (i64.const 64) (f64.const 64.1) (i32.const 11)) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "type-all-f64-i32") (result f64 i32) + ;; (call_indirect (type $out-f64-i32) (i32.const 29)) + ;; ) + ;; (func (export "type-all-i32-f64") (result i32 f64) + ;; (call_indirect (type $over-i32-f64) + ;; (i32.const 1) (f64.const 2) (i32.const 30) + ;; ) + ;; ) + ;; (func (export "type-all-i32-i64") (result i64 i32) + ;; (call_indirect (type $swap-i32-i64) + ;; (i32.const 1) (i64.const 2) (i32.const 31) + ;; ) + ;; ) + ;; Dispatch (func (export "dispatch") (param i32 i64) (result i64) @@ -448,6 +479,8 @@ (assert_return (invoke "type-i64") (i64.const 0x164)) (assert_return (invoke "type-f32") (f32.const 0xf32)) (assert_return (invoke "type-f64") (f64.const 0xf64)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "type-f64-i32") (f64.const 0xf64) (i32.const 32)) (assert_return (invoke "type-index") (i64.const 100)) @@ -461,6 +494,11 @@ (assert_return (invoke "type-second-f32") (f32.const 32)) (assert_return (invoke "type-second-f64") (f64.const 64.1)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "type-all-f64-i32") (f64.const 0xf64) (i32.const 32)) +;; (assert_return (invoke "type-all-i32-f64") (i32.const 1) (f64.const 2)) +;; (assert_return (invoke "type-all-i32-i64") (i64.const 2) (i32.const 1)) + (assert_return (invoke "dispatch" (i32.const 5) (i64.const 2)) (i64.const 2)) (assert_return (invoke "dispatch" (i32.const 5) (i64.const 5)) (i64.const 5)) (assert_return (invoke "dispatch" (i32.const 12) (i64.const 5)) (i64.const 120)) @@ -468,7 +506,7 @@ (assert_return (invoke "dispatch" (i32.const 20) (i64.const 2)) (i64.const 2)) (assert_trap (invoke "dispatch" (i32.const 0) (i64.const 2)) "indirect call type mismatch") (assert_trap (invoke "dispatch" (i32.const 15) (i64.const 2)) "indirect call type mismatch") -(assert_trap (invoke "dispatch" (i32.const 29) (i64.const 2)) "undefined element") +(assert_trap (invoke "dispatch" (i32.const 32) (i64.const 2)) "undefined element") (assert_trap (invoke "dispatch" (i32.const -1) (i64.const 2)) "undefined element") (assert_trap (invoke "dispatch" (i32.const 1213432423) (i64.const 2)) "undefined element") @@ -588,6 +626,52 @@ (assert_return (invoke "as-compare-right") (i32.const 1)) (assert_return (invoke "as-convert-operand") (i64.const 1)) +;; W2C2: No support for functions with multiple tables +;; ;; Multiple tables +;; +;; (module +;; (type $ii-i (func (param i32 i32) (result i32))) +;; +;; (table $t1 funcref (elem $f $g)) +;; (table $t2 funcref (elem $h $i $j)) +;; (table $t3 4 funcref) +;; (elem (table $t3) (i32.const 0) func $g $h) +;; (elem (table $t3) (i32.const 3) func $z) +;; +;; (func $f (type $ii-i) (i32.add (local.get 0) (local.get 1))) +;; (func $g (type $ii-i) (i32.sub (local.get 0) (local.get 1))) +;; (func $h (type $ii-i) (i32.mul (local.get 0) (local.get 1))) +;; (func $i (type $ii-i) (i32.div_u (local.get 0) (local.get 1))) +;; (func $j (type $ii-i) (i32.rem_u (local.get 0) (local.get 1))) +;; (func $z) +;; +;; (func (export "call-1") (param i32 i32 i32) (result i32) +;; (call_indirect $t1 (type $ii-i) (local.get 0) (local.get 1) (local.get 2)) +;; ) +;; (func (export "call-2") (param i32 i32 i32) (result i32) +;; (call_indirect $t2 (type $ii-i) (local.get 0) (local.get 1) (local.get 2)) +;; ) +;; (func (export "call-3") (param i32 i32 i32) (result i32) +;; (call_indirect $t3 (type $ii-i) (local.get 0) (local.get 1) (local.get 2)) +;; ) +;; ) +;; +;; (assert_return (invoke "call-1" (i32.const 2) (i32.const 3) (i32.const 0)) (i32.const 5)) +;; (assert_return (invoke "call-1" (i32.const 2) (i32.const 3) (i32.const 1)) (i32.const -1)) +;; (assert_trap (invoke "call-1" (i32.const 2) (i32.const 3) (i32.const 2)) "undefined element") +;; +;; (assert_return (invoke "call-2" (i32.const 2) (i32.const 3) (i32.const 0)) (i32.const 6)) +;; (assert_return (invoke "call-2" (i32.const 2) (i32.const 3) (i32.const 1)) (i32.const 0)) +;; (assert_return (invoke "call-2" (i32.const 2) (i32.const 3) (i32.const 2)) (i32.const 2)) +;; (assert_trap (invoke "call-2" (i32.const 2) (i32.const 3) (i32.const 3)) "undefined element") +;; +;; (assert_return (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 0)) (i32.const -1)) +;; (assert_return (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 1)) (i32.const 6)) +;; (assert_trap (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 2)) "uninitialized element") +;; (assert_trap (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 3)) "indirect call type mismatch") +;; (assert_trap (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 4)) "undefined element") + + ;; Invalid syntax (assert_malformed @@ -938,5 +1022,25 @@ (assert_invalid (module (table funcref (elem 0 0))) - "unknown function 0" + "unknown function" +) + + + + +;; Flat syntax + +(module + (table 1 funcref) + (func unreachable call_indirect) + (func unreachable call_indirect nop) + (func unreachable call_indirect call_indirect) + (func unreachable call_indirect (call_indirect)) + (func unreachable call_indirect call_indirect call_indirect) + (func unreachable call_indirect (result)) + (func unreachable call_indirect (result) (result)) + (func unreachable call_indirect (result) (result) call_indirect) + (func unreachable call_indirect (result) (result) call_indirect (result)) + (func (result i32) unreachable call_indirect select) + (func (result i32) unreachable call_indirect select call_indirect) ) diff --git a/tests/const.wast b/tests/const.wast index 74443c2..5656502 100644 --- a/tests/const.wast +++ b/tests/const.wast @@ -1059,4 +1059,3 @@ (assert_return (invoke "f") (f64.const +0x1.fffffffffffffp1023)) (module (func (export "f") (result f64) (f64.const -0x1.fffffffffffff7ffffffp1023))) (assert_return (invoke "f") (f64.const -0x1.fffffffffffffp1023)) - diff --git a/tests/conversions.wast b/tests/conversions.wast index a926b74..65d0933 100644 --- a/tests/conversions.wast +++ b/tests/conversions.wast @@ -253,6 +253,13 @@ (assert_trap (invoke "i64.trunc_f64_u" (f64.const -nan)) "invalid conversion to integer") (assert_trap (invoke "i64.trunc_f64_u" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") +(assert_return (invoke "f32.convert_i32_s" (i32.const 1)) (f32.const 1.0)) +(assert_return (invoke "f32.convert_i32_s" (i32.const -1)) (f32.const -1.0)) +(assert_return (invoke "f32.convert_i32_s" (i32.const 0)) (f32.const 0.0)) +(assert_return (invoke "f32.convert_i32_s" (i32.const 2147483647)) (f32.const 2147483648)) +(assert_return (invoke "f32.convert_i32_s" (i32.const -2147483648)) (f32.const -2147483648)) +(assert_return (invoke "f32.convert_i32_s" (i32.const 1234567890)) (f32.const 0x1.26580cp+30)) + ;; Saturating conversions: test all the same values as the non-saturating conversions. (assert_return (invoke "i32.trunc_sat_f32_s" (f32.const 0.0)) (i32.const 0)) @@ -443,12 +450,6 @@ (assert_return (invoke "i64.trunc_sat_f64_u" (f64.const -nan)) (i64.const 0)) (assert_return (invoke "i64.trunc_sat_f64_u" (f64.const -nan:0x4000000000000)) (i64.const 0)) -(assert_return (invoke "f32.convert_i32_s" (i32.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_i32_s" (i32.const -1)) (f32.const -1.0)) -(assert_return (invoke "f32.convert_i32_s" (i32.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_i32_s" (i32.const 2147483647)) (f32.const 2147483648)) -(assert_return (invoke "f32.convert_i32_s" (i32.const -2147483648)) (f32.const -2147483648)) -(assert_return (invoke "f32.convert_i32_s" (i32.const 1234567890)) (f32.const 0x1.26580cp+30)) ;; Test rounding directions. (assert_return (invoke "f32.convert_i32_s" (i32.const 16777217)) (f32.const 16777216.0)) (assert_return (invoke "f32.convert_i32_s" (i32.const -16777217)) (f32.const -16777216.0)) diff --git a/tests/f32.wast b/tests/f32.wast index 4328f9d..0f8ae0a 100644 --- a/tests/f32.wast +++ b/tests/f32.wast @@ -2532,3 +2532,12 @@ (assert_invalid (module (func (result f32) (f32.sqrt (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result f32) (f32.trunc (i64.const 0)))) "type mismatch") +;; These float literal patterns are only allowed in scripts, not in text format. +(assert_malformed + (module quote "(func (result f32) (f32.const nan:arithmetic))") + "unexpected token" +) +(assert_malformed + (module quote "(func (result f32) (f32.const nan:canonical))") + "unexpected token" +) diff --git a/tests/f64.wast b/tests/f64.wast index 70bb477..afd2b2f 100644 --- a/tests/f64.wast +++ b/tests/f64.wast @@ -2531,3 +2531,13 @@ (assert_invalid (module (func (result f64) (f64.nearest (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result f64) (f64.sqrt (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result f64) (f64.trunc (i64.const 0)))) "type mismatch") + +;; These float literal patterns are only allowed in scripts, not in text format. +(assert_malformed + (module quote "(func (result f64) (f64.const nan:arithmetic))") + "unexpected token" +) +(assert_malformed + (module quote "(func (result f64) (f64.const nan:canonical))") + "unexpected token" +) diff --git a/tests/fac.wast b/tests/fac.wast index ef10991..9aad756 100644 --- a/tests/fac.wast +++ b/tests/fac.wast @@ -79,6 +79,25 @@ ) (local.get 1) ) + + ;; W2C2: No support for functions with multiple return values + ;; ;; Iterative factorial without locals. + ;; (func $pick0 (param i64) (result i64 i64) + ;; (local.get 0) (local.get 0) + ;; ) + ;; (func $pick1 (param i64 i64) (result i64 i64 i64) + ;; (local.get 0) (local.get 1) (local.get 0) + ;; ) + ;; (func (export "fac-ssa") (param i64) (result i64) + ;; (i64.const 1) (local.get 0) + ;; (loop $l (param i64 i64) (result i64) + ;; (call $pick1) (call $pick1) (i64.mul) + ;; (call $pick1) (i64.const 1) (i64.sub) + ;; (call $pick0) (i64.const 0) (i64.gt_u) + ;; (br_if $l) + ;; (drop) (return) + ;; ) + ;; ) ) (assert_return (invoke "fac-rec" (i64.const 25)) (i64.const 7034535277573963776)) @@ -86,4 +105,7 @@ (assert_return (invoke "fac-rec-named" (i64.const 25)) (i64.const 7034535277573963776)) (assert_return (invoke "fac-iter-named" (i64.const 25)) (i64.const 7034535277573963776)) (assert_return (invoke "fac-opt" (i64.const 25)) (i64.const 7034535277573963776)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "fac-ssa" (i64.const 25)) (i64.const 7034535277573963776)) + (assert_exhaustion (invoke "fac-rec" (i64.const 1073741824)) "call stack exhausted") diff --git a/tests/float_exprs.wast b/tests/float_exprs.wast index 1f88299..274c996 100644 --- a/tests/float_exprs.wast +++ b/tests/float_exprs.wast @@ -649,7 +649,8 @@ (assert_return (invoke "no_fold_promote_demote" (f32.const inf)) (f32.const inf)) (assert_return (invoke "no_fold_promote_demote" (f32.const -inf)) (f32.const -inf)) -;; Test that demote(x+promote(y)) is not folded to demote(x)+y. +;; Test that demote(x+promote(y)) is not folded to demote(x)+y, and that +;; demote(promote(y)+x) is not folded to y+demote(x). (module (func (export "no_demote_mixed_add") (param $x f64) (param $y f32) (result f32) @@ -670,11 +671,14 @@ (assert_return (invoke "no_demote_mixed_add_commuted" (f32.const 0x1.096f4ap-29) (f64.const -0x1.0d5110e3385bbp-20)) (f32.const -0x1.0ccc5ap-20)) (assert_return (invoke "no_demote_mixed_add_commuted" (f32.const -0x1.24e474p-41) (f64.const -0x1.73852db4e5075p-20)) (f32.const -0x1.738536p-20)) -;; Test that demote(x-promote(y)) is not folded to demote(x)-y. +;; Test that demote(x-promote(y)) is not folded to demote(x)-y, and that +;; demote(promote(y)-x) is not folded to y-demote(x). (module (func (export "no_demote_mixed_sub") (param $x f64) (param $y f32) (result f32) (f32.demote_f64 (f64.sub (local.get $x) (f64.promote_f32 (local.get $y))))) + (func (export "no_demote_mixed_sub_commuted") (param $y f32) (param $x f64) (result f32) + (f32.demote_f64 (f64.sub (f64.promote_f32 (local.get $y)) (local.get $x)))) ) (assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.a0a183220e9b1p+82) (f32.const 0x1.c5acf8p+61)) (f32.const 0x1.a0a174p+82)) @@ -683,6 +687,56 @@ (assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.0459f34091dbfp-54) (f32.const 0x1.61ad08p-71)) (f32.const 0x1.045942p-54)) (assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.a7498dca3fdb7p+14) (f32.const 0x1.ed21c8p+15)) (f32.const -0x1.197d02p+15)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.c5acf8p+61) (f64.const 0x1.a0a183220e9b1p+82)) (f32.const -0x1.a0a174p+82)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.d48ca4p+17) (f64.const -0x1.6e2c5ac39f63ep+30)) (f32.const 0x1.6e3bp+30)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.9d69bcp-12) (f64.const -0x1.98c74350dde6ap+6)) (f32.const 0x1.98c7aap+6)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.61ad08p-71) (f64.const 0x1.0459f34091dbfp-54)) (f32.const -0x1.045942p-54)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.ed21c8p+15) (f64.const 0x1.a7498dca3fdb7p+14)) (f32.const 0x1.197d02p+15)) + +;; Test that demote(x*promote(y)) is not folded to demote(x)*y, and that +;; demote(promote(y)*x) is not folded to y*demote(x). + +(module + (func (export "no_demote_mixed_mul") (param $x f64) (param $y f32) (result f32) + (f32.demote_f64 (f64.mul (local.get $x) (f64.promote_f32 (local.get $y))))) + (func (export "no_demote_mixed_mul_commuted") (param $y f32) (param $x f64) (result f32) + (f32.demote_f64 (f64.mul (f64.promote_f32 (local.get $y)) (local.get $x)))) +) + +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.a19789e5aa475p-202) (f32.const 0x1.858cbep+113)) (f32.const 0x1.3db86cp-88)) +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.8f0e6a5a53f15p+140) (f32.const 0x1.2ef826p-107)) (f32.const 0x1.d845d2p+33)) +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.f03aa769e296cp+176) (f32.const 0x1.a9255p-57)) (f32.const 0x1.9c0cdap+120)) +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.9cd70b636bc52p+221) (f32.const 0x1.3f3ac6p-122)) (f32.const 0x1.01676p+100)) +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.c56b4c2991a3cp-170) (f32.const 0x1.1ad242p+48)) (f32.const 0x1.f4ec98p-122)) + +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.858cbep+113) (f64.const 0x1.a19789e5aa475p-202)) (f32.const 0x1.3db86cp-88)) +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.2ef826p-107) (f64.const 0x1.8f0e6a5a53f15p+140)) (f32.const 0x1.d845d2p+33)) +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.a9255p-57) (f64.const 0x1.f03aa769e296cp+176)) (f32.const 0x1.9c0cdap+120)) +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.3f3ac6p-122) (f64.const 0x1.9cd70b636bc52p+221)) (f32.const 0x1.01676p+100)) +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.1ad242p+48) (f64.const 0x1.c56b4c2991a3cp-170)) (f32.const 0x1.f4ec98p-122)) + +;; Test that demote(x/promote(y)) is not folded to demote(x)/y, and that +;; demote(promote(y)/x) is not folded to y/demote(x). + +(module + (func (export "no_demote_mixed_div") (param $x f64) (param $y f32) (result f32) + (f32.demote_f64 (f64.div (local.get $x) (f64.promote_f32 (local.get $y))))) + (func (export "no_demote_mixed_div_commuted") (param $y f32) (param $x f64) (result f32) + (f32.demote_f64 (f64.div (f64.promote_f32 (local.get $y)) (local.get $x)))) +) + +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.40d0b55d4cee1p+150) (f32.const 0x1.6c7496p+103)) (f32.const 0x1.c2b158p+46)) +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.402750f34cd98p-153) (f32.const 0x1.3db8ep-82)) (f32.const 0x1.01f586p-71)) +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.3f7ece1a790a7p-37) (f32.const 0x1.a5652p-128)) (f32.const 0x1.8430dp+90)) +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.5171328e16885p-138) (f32.const 0x1.10636ap-88)) (f32.const 0x1.3d23cep-50)) +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.d3a380fc986ccp+74) (f32.const 0x1.f095b6p+88)) (f32.const 0x1.e227c4p-15)) + +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.d78ddcp-74) (f64.const 0x1.2c57e125069e2p-42)) (f32.const 0x1.91eed6p-32)) +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.7db224p+26) (f64.const 0x1.1c291ec609ed4p+159)) (f32.const 0x1.57dfp-133)) +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.e7a824p-40) (f64.const 0x1.f4bdb25ff00fcp-137)) (f32.const 0x1.f29f22p+96)) +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.730b8p+80) (f64.const 0x1.880fb331a64cap+210)) (f32.const 0x1.e48ep-131)) +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.7715fcp-73) (f64.const 0x1.6feb1fa66f11bp-198)) (f32.const 0x1.04fcb6p+125)) + ;; Test that converting between integer and float and back isn't folded away. (module @@ -1986,7 +2040,7 @@ (assert_return (invoke "f64.xkcd_better_sqrt_5" (f64.const 13.0) (f64.const 4.0) (f64.const 0x1.921fb54442d18p+1) (f64.const 24.0)) (f64.const 0x1.1e3778509a5a3p+1)) ;; Compute the floating-point radix. -;; M. A. Malcom. Algorithms to reveal properties of floating-point arithmetic. +;; M. A. Malcolm. Algorithms to reveal properties of floating-point arithmetic. ;; Communications of the ACM, 15(11):949-951, November 1972. (module (func (export "f32.compute_radix") (param $0 f32) (param $1 f32) (result f32) diff --git a/tests/float_literals.wast b/tests/float_literals.wast index 1a58f9f..38a80d8 100644 --- a/tests/float_literals.wast +++ b/tests/float_literals.wast @@ -25,6 +25,10 @@ (func (export "f32.max_finite") (result i32) (i32.reinterpret_f32 (f32.const 0x1.fffffep+127))) (func (export "f32.max_subnormal") (result i32) (i32.reinterpret_f32 (f32.const 0x1.fffffcp-127))) (func (export "f32.trailing_dot") (result i32) (i32.reinterpret_f32 (f32.const 0x1.p10))) + (func (export "f32.misc_int") (result i32) (i32.reinterpret_f32 (f32.const 0x12345))) + (func (export "f32.large_int") (result i32) (i32.reinterpret_f32 (f32.const 0x1_0000_0000_0000_0000_0000))) + (func (export "f32.min_int32") (result i32) (i32.reinterpret_f32 (f32.const -0x8000_0000))) + (func (export "f32.min_int64") (result i32) (i32.reinterpret_f32 (f32.const -0x8000_0000_0000_0000))) ;; f32 in decimal format (func (export "f32_dec.zero") (result i32) (i32.reinterpret_f32 (f32.const 0.0e0))) @@ -36,6 +40,10 @@ (func (export "f32_dec.max_subnormal") (result i32) (i32.reinterpret_f32 (f32.const 1.1754942e-38))) (func (export "f32_dec.max_finite") (result i32) (i32.reinterpret_f32 (f32.const 3.4028234e+38))) (func (export "f32_dec.trailing_dot") (result i32) (i32.reinterpret_f32 (f32.const 1.e10))) + (func (export "f32_dec.misc_int") (result i32) (i32.reinterpret_f32 (f32.const 12345))) + (func (export "f32_dec.large_int") (result i32) (i32.reinterpret_f32 (f32.const 100_000_000_000_000_000_000))) + (func (export "f32_dec.min_int32") (result i32) (i32.reinterpret_f32 (f32.const -2147483648))) + (func (export "f32_dec.min_int64") (result i32) (i32.reinterpret_f32 (f32.const -9223372036854775808))) ;; https://twitter.com/Archivd/status/994637336506912768 (func (export "f32_dec.root_beer_float") (result i32) (i32.reinterpret_f32 (f32.const 1.000000119))) @@ -64,6 +72,10 @@ (func (export "f64.max_subnormal") (result i64) (i64.reinterpret_f64 (f64.const 0x0.fffffffffffffp-1022))) (func (export "f64.max_finite") (result i64) (i64.reinterpret_f64 (f64.const 0x1.fffffffffffffp+1023))) (func (export "f64.trailing_dot") (result i64) (i64.reinterpret_f64 (f64.const 0x1.p100))) + (func (export "f64.misc_int") (result i64) (i64.reinterpret_f64 (f64.const 0x12345))) + (func (export "f64.large_int") (result i64) (i64.reinterpret_f64 (f64.const 0x1_0000_0000_0000_0000_0000))) + (func (export "f64.min_int32") (result i64) (i64.reinterpret_f64 (f64.const -0x8000_0000))) + (func (export "f64.min_int64") (result i64) (i64.reinterpret_f64 (f64.const -0x8000_0000_0000_0000))) ;; f64 numbers in decimal format (func (export "f64_dec.zero") (result i64) (i64.reinterpret_f64 (f64.const 0.0e0))) @@ -75,6 +87,10 @@ (func (export "f64_dec.max_subnormal") (result i64) (i64.reinterpret_f64 (f64.const 2.2250738585072011e-308))) (func (export "f64_dec.max_finite") (result i64) (i64.reinterpret_f64 (f64.const 1.7976931348623157e+308))) (func (export "f64_dec.trailing_dot") (result i64) (i64.reinterpret_f64 (f64.const 1.e100))) + (func (export "f64_dec.misc_int") (result i64) (i64.reinterpret_f64 (f64.const 12345))) + (func (export "f64_dec.large_int") (result i64) (i64.reinterpret_f64 (f64.const 100_000_000_000_000_000_000))) + (func (export "f64_dec.min_int32") (result i64) (i64.reinterpret_f64 (f64.const -2147483648))) + (func (export "f64_dec.min_int64") (result i64) (i64.reinterpret_f64 (f64.const -9223372036854775808))) ;; https://twitter.com/Archivd/status/994637336506912768 (func (export "f64_dec.root_beer_float") (result i64) (i64.reinterpret_f64 (f64.const 1.000000119))) @@ -123,6 +139,10 @@ (assert_return (invoke "f32.max_subnormal") (i32.const 0x7fffff)) (assert_return (invoke "f32.max_finite") (i32.const 0x7f7fffff)) (assert_return (invoke "f32.trailing_dot") (i32.const 0x44800000)) +(assert_return (invoke "f32.misc_int") (i32.const 0x4791a280)) +(assert_return (invoke "f32.large_int") (i32.const 0x67800000)) +(assert_return (invoke "f32.min_int32") (i32.const 0xcf000000)) +(assert_return (invoke "f32.min_int64") (i32.const 0xdf000000)) (assert_return (invoke "f32_dec.zero") (i32.const 0)) (assert_return (invoke "f32_dec.positive_zero") (i32.const 0)) (assert_return (invoke "f32_dec.negative_zero") (i32.const 0x80000000)) @@ -133,12 +153,17 @@ (assert_return (invoke "f32_dec.max_finite") (i32.const 0x7f7fffff)) (assert_return (invoke "f32_dec.trailing_dot") (i32.const 0x501502f9)) (assert_return (invoke "f32_dec.root_beer_float") (i32.const 0x3f800001)) +(assert_return (invoke "f32_dec.misc_int") (i32.const 0x4640e400)) +(assert_return (invoke "f32_dec.large_int") (i32.const 0x60ad78ec)) +(assert_return (invoke "f32_dec.min_int32") (i32.const 0xcf000000)) +(assert_return (invoke "f32_dec.min_int64") (i32.const 0xdf000000)) -;; TODO: (assert_return (invoke "f64.nan") (i64.const 0x7ff8000000000000)) -;; TODO: (assert_return (invoke "f64.positive_nan") (i64.const 0x7ff8000000000000)) -;; TODO: (assert_return (invoke "f64.negative_nan") (i64.const 0xfff8000000000000)) -;; TODO: (assert_return (invoke "f64.plain_nan") (i64.const 0x7ff8000000000000)) -;; TODO: (assert_return (invoke "f64.informally_known_as_plain_snan") (i64.const 0x7ff4000000000000)) +;; W2C2: +;; (assert_return (invoke "f64.nan") (i64.const 0x7ff8000000000000)) +;; (assert_return (invoke "f64.positive_nan") (i64.const 0x7ff8000000000000)) +;; (assert_return (invoke "f64.negative_nan") (i64.const 0xfff8000000000000)) +;; (assert_return (invoke "f64.plain_nan") (i64.const 0x7ff8000000000000)) +;; (assert_return (invoke "f64.informally_known_as_plain_snan") (i64.const 0x7ff4000000000000)) (assert_return (invoke "f64.all_ones_nan") (i64.const 0xffffffffffffffff)) (assert_return (invoke "f64.misc_nan") (i64.const 0x7ff0123456789abc)) (assert_return (invoke "f64.misc_positive_nan") (i64.const 0x7ff3040506070809)) @@ -155,6 +180,10 @@ (assert_return (invoke "f64.max_subnormal") (i64.const 0xfffffffffffff)) (assert_return (invoke "f64.max_finite") (i64.const 0x7fefffffffffffff)) (assert_return (invoke "f64.trailing_dot") (i64.const 0x4630000000000000)) +(assert_return (invoke "f64.misc_int") (i64.const 0x40f2345000000000)) +(assert_return (invoke "f64.large_int") (i64.const 0x44f0000000000000)) +(assert_return (invoke "f64.min_int32") (i64.const 0xc1e0000000000000)) +(assert_return (invoke "f64.min_int64") (i64.const 0xc3e0000000000000)) (assert_return (invoke "f64_dec.zero") (i64.const 0)) (assert_return (invoke "f64_dec.positive_zero") (i64.const 0)) (assert_return (invoke "f64_dec.negative_zero") (i64.const 0x8000000000000000)) @@ -165,6 +194,10 @@ (assert_return (invoke "f64_dec.max_finite") (i64.const 0x7fefffffffffffff)) (assert_return (invoke "f64_dec.trailing_dot") (i64.const 0x54b249ad2594c37d)) (assert_return (invoke "f64_dec.root_beer_float") (i64.const 0x3ff000001ff19e24)) +(assert_return (invoke "f64_dec.misc_int") (i64.const 0x40c81c8000000000)) +(assert_return (invoke "f64_dec.large_int") (i64.const 0x4415af1d78b58c40)) +(assert_return (invoke "f64_dec.min_int32") (i64.const 0xc1e0000000000000)) +(assert_return (invoke "f64_dec.min_int64") (i64.const 0xc3e0000000000000)) (assert_return (invoke "f32-dec-sep1") (f32.const 1000000)) (assert_return (invoke "f32-dec-sep2") (f32.const 1000)) @@ -352,6 +385,10 @@ (module quote "(global f32 (f32.const 0x1.0p_+1))") "unknown operator" ) +(assert_malformed + (module quote "(global f32 (f32.const nan:0x80_0000))") + "constant out of range" +) (assert_malformed (module quote "(global f64 (f64.const _100))") @@ -505,3 +542,7 @@ (module quote "(global f64 (f64.const 0x1.0p_+1))") "unknown operator" ) +(assert_malformed + (module quote "(global f64 (f64.const nan:0x10_0000_0000_0000))") + "constant out of range" +) diff --git a/tests/float_misc.wast b/tests/float_misc.wast index 3d83281..a2153cf 100644 --- a/tests/float_misc.wast +++ b/tests/float_misc.wast @@ -587,6 +587,50 @@ (assert_return (invoke "f64.sqrt" (f64.const 0x1.ffffffffffffep-1)) (f64.const 0x1.fffffffffffffp-1)) (assert_return (invoke "f64.sqrt" (f64.const 0x1.ffffffffffffdp-1)) (f64.const 0x1.ffffffffffffep-1)) +;; Test the values of sqrt around ¼, where `sqrt(x) - x` is greatest. +(assert_return (invoke "f32.sqrt" (f32.const 0x1.fffffep-3)) (f32.const 0x1.fffffep-2)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1p-2)) (f32.const 0x1p-1)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.000002p-2)) (f32.const 0x1p-1)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.000004p-2)) (f32.const 0x1.000002p-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.fffffffffffffp-3)) (f64.const 0x1.fffffffffffffp-2)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1p-2)) (f64.const 0x1p-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.0000000000001p-2)) (f64.const 0x1p-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.0000000000002p-2)) (f64.const 0x1.0000000000001p-1)) + +;; Test some values that in some systems differ between CPU and DSP. +;; https://e2e.ti.com/support/processors-group/processors/f/processors-forum/30725/sqrt-function-gives-slightly-different-results---may-be-rounding-problem +(assert_return (invoke "f32.sqrt" (f32.const 0x1.fb41d4p+37)) (f32.const 0x1.fd9f8p+18)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.fb41d442eeb1bp+37)) (f64.const 0x1.fd9f808a0b68dp+18)) + +;; Test some values that in some systems differ between CPU and GPU. +;; https://forums.developer.nvidia.com/t/sqrt-precision/18597 +(assert_return (invoke "f32.sqrt" (f32.const 0x1.3c61b2p+33)) (f32.const 0x1.927ap+16)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.56bd4ep+51)) (f32.const 0x1.a2e80cp+25)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.65f02cp+44)) (f32.const 0x1.2eb544p+22)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.26580cp+30)) (f32.const 0x1.1280d6p+15)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.3c61b112p+33)) (f64.const 0x1.927ap+16)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.56bd4e65c8548p+51)) (f64.const 0x1.a2e80dp+25)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.65f02cc93a1p+44)) (f64.const 0x1.2eb544p+22)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.26580b4cp+30)) (f64.const 0x1.1280d62b818cfp+15)) + +;; Test some values that in some systems differ between CPU and GPU. +;; https://github.com/pytorch/pytorch/issues/31250 +(assert_return (invoke "f32.sqrt" (f32.const 0x1.0817fcp-1)) (f32.const 0x1.6fb79ep-1)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.017b98p-1)) (f32.const 0x1.6b15eep-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.0817fcp-1)) (f64.const 0x1.6fb79d0dfaffap-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.017b98p-1)) (f64.const 0x1.6b15ed0071b95p-1)) + +;; Test that sqrt is not a "good enough" approximation. +;; https://sicp.sourceacademy.org/chapters/1.1.7.html +(assert_return (invoke "f32.sqrt" (f32.const 0x1.2p+3)) (f32.const 0x1.8p+1)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.12p+7)) (f32.const 0x1.768ce6p+3)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.c615dep+0)) (f32.const 0x1.54f2dp+0)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.f4p+9)) (f32.const 0x1.f9f6e4p+4)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.2p+3)) (f64.const 0x1.8p+1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.12p+7)) (f64.const 0x1.768ce6d3c11ep+3)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.c615df07a57d3p+0)) (f64.const 0x1.54f2d015acf09p+0)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.f4p+9)) (f64.const 0x1.f9f6e4990f227p+4)) + ;; Test that the bitwise floating point operators are bitwise on NaN. (assert_return (invoke "f32.abs" (f32.const nan:0x0f1e2)) (f32.const nan:0x0f1e2)) diff --git a/tests/gen/align.108.wasm b/tests/gen/align.108.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a9f89230be7fc18b0a3584acd65064a0630cab4a GIT binary patch literal 35 qcmZQbEY4+QU|?WmVN76PU}j=uU}a`xVC3Rr literal 0 HcmV?d00001 diff --git a/tests/gen/align.112.wasm b/tests/gen/align.112.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2464ab1b945e2801af1e824147b657d9e00e86f3 GIT binary patch literal 35 qcmZQbEY4+QU|?WmVN76PU}j=uU}a`xVC3Rr +#include "w2c2_base.h" +#include "test.h" +#include "test_call_indirect.34.h" + +void test() { + callindirect34Instance instance; + callindirect34Instantiate(&instance, resolveTestImports); + printStart("call_indirect.34.wasm"); +} diff --git a/tests/gen/assert_conversions.0.c b/tests/gen/assert_conversions.0.c index f05e5cd..73130b6 100644 --- a/tests/gen/assert_conversions.0.c +++ b/tests/gen/assert_conversions.0.c @@ -713,6 +713,36 @@ void test() { 9223372036854775808ull, "i64.trunc_f64_u(9.223372036854776e+18)" ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 1u), + 1.0, + "f32.convert_i32_s(1u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 4294967295u), + -1.0, + "f32.convert_i32_s(4294967295u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 0u), + 0.0, + "f32.convert_i32_s(0u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 2147483647u), + 2147483648.0, + "f32.convert_i32_s(2147483647u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 2147483648u), + -2147483648.0, + "f32.convert_i32_s(2147483648u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 1234567890u), + 1234567936.0, + "f32.convert_i32_s(1234567890u)" + ); assertEqualU32( conversions0_i32X2Etrunc_sat_f32_s(&instance, 0.0), 0u, @@ -1453,36 +1483,6 @@ void test() { 0ull, "i64.trunc_sat_f64_u(-INFINITY)" ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 1u), - 1.0, - "f32.convert_i32_s(1u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 4294967295u), - -1.0, - "f32.convert_i32_s(4294967295u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 0u), - 0.0, - "f32.convert_i32_s(0u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 2147483647u), - 2147483648.0, - "f32.convert_i32_s(2147483647u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 2147483648u), - -2147483648.0, - "f32.convert_i32_s(2147483648u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 1234567890u), - 1234567936.0, - "f32.convert_i32_s(1234567890u)" - ); assertEqualF32( conversions0_f32X2Econvert_i32_s(&instance, 16777217u), 16777216.0, diff --git a/tests/gen/assert_float_exprs.38.c b/tests/gen/assert_float_exprs.38.c index 25aa93e..ad64887 100644 --- a/tests/gen/assert_float_exprs.38.c +++ b/tests/gen/assert_float_exprs.38.c @@ -33,4 +33,29 @@ void test() { -36030.50390625, "no_demote_mixed_sub(27090.388466832894, 63120.890625)" ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 4.0863470592574095e+18, 7.869935327202668e+24), + -7.869930965402192e+24, + "no_demote_mixed_sub_commuted(4.0863470592574095e+18, 7.869935327202668e+24)" + ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 239897.28125, -1535841968.9056544), + 1536081920.0, + "no_demote_mixed_sub_commuted(239897.28125, -1535841968.9056544)" + ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 0.0003942613839171827, -102.19459272722602), + 102.19498443603516, + "no_demote_mixed_sub_commuted(0.0003942613839171827, -102.19459272722602)" + ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 5.85107700707483e-22, 5.645470375565188e-17), + -5.645411727723358e-17, + "no_demote_mixed_sub_commuted(5.85107700707483e-22, 5.645470375565188e-17)" + ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 63120.890625, 27090.388466832894), + 36030.50390625, + "no_demote_mixed_sub_commuted(63120.890625, 27090.388466832894)" + ); } diff --git a/tests/gen/assert_float_exprs.39.c b/tests/gen/assert_float_exprs.39.c index 442cace..b0ec287 100644 --- a/tests/gen/assert_float_exprs.39.c +++ b/tests/gen/assert_float_exprs.39.c @@ -9,163 +9,53 @@ void test() { floatexprs39Instantiate(&instance, resolveTestImports); printStart("float_exprs.39.wasm"); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, 1.5), - 1.0, - "f32.i32.no_fold_trunc_s_convert_s(1.5)" + floatexprs39_no_demote_mixed_mul(&instance, 2.5377744840344215e-61, 1.5802016161448726e+34), + 4.010195211734413e-27, + "no_demote_mixed_mul(2.5377744840344215e-61, 1.5802016161448726e+34)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, -1.5), - -1.0, - "f32.i32.no_fold_trunc_s_convert_s(-1.5)" + floatexprs39_no_demote_mixed_mul(&instance, 2.1726692129428788e+42, 7.293721306977546e-33), + 15846843392.0, + "no_demote_mixed_mul(2.1726692129428788e+42, 7.293721306977546e-33)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, 1.5), - 1.0, - "f32.i32.no_fold_trunc_u_convert_s(1.5)" + floatexprs39_no_demote_mixed_mul(&instance, 1.8566135475946957e+53, 1.1523598697264038e-17), + 2.139486966371021e+36, + "no_demote_mixed_mul(1.8566135475946957e+53, 1.1523598697264038e-17)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, -0.5), - 0.0, - "f32.i32.no_fold_trunc_u_convert_s(-0.5)" + floatexprs39_no_demote_mixed_mul(&instance, 5.434641042224456e+66, 2.3453285768874742e-37), + 1.2746019236910135e+30, + "no_demote_mixed_mul(5.434641042224456e+66, 2.3453285768874742e-37)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, 1.5), - 1.0, - "f32.i32.no_fold_trunc_s_convert_u(1.5)" + floatexprs39_no_demote_mixed_mul(&instance, 1.1834791522838056e-51, 310965329461248.0), + 3.6802097539506265e-37, + "no_demote_mixed_mul(1.1834791522838056e-51, 310965329461248.0)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, -1.5), - 4294967296.0, - "f32.i32.no_fold_trunc_s_convert_u(-1.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 1.5802016161448726e+34, 2.5377744840344215e-61), + 4.010195211734413e-27, + "no_demote_mixed_mul_commuted(1.5802016161448726e+34, 2.5377744840344215e-61)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, 1.5), - 1.0, - "f32.i32.no_fold_trunc_u_convert_u(1.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 7.293721306977546e-33, 2.1726692129428788e+42), + 15846843392.0, + "no_demote_mixed_mul_commuted(7.293721306977546e-33, 2.1726692129428788e+42)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, -0.5), - 0.0, - "f32.i32.no_fold_trunc_u_convert_u(-0.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, 1.5), - 1.0, - "f64.i32.no_fold_trunc_s_convert_s(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, -1.5), - -1.0, - "f64.i32.no_fold_trunc_s_convert_s(-1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, 1.5), - 1.0, - "f64.i32.no_fold_trunc_u_convert_s(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, -0.5), - 0.0, - "f64.i32.no_fold_trunc_u_convert_s(-0.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, 1.5), - 1.0, - "f64.i32.no_fold_trunc_s_convert_u(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, -1.5), - 4294967295.0, - "f64.i32.no_fold_trunc_s_convert_u(-1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, 1.5), - 1.0, - "f64.i32.no_fold_trunc_u_convert_u(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, -0.5), - 0.0, - "f64.i32.no_fold_trunc_u_convert_u(-0.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, 1.5), - 1.0, - "f32.i64.no_fold_trunc_s_convert_s(1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, -1.5), - -1.0, - "f32.i64.no_fold_trunc_s_convert_s(-1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, 1.5), - 1.0, - "f32.i64.no_fold_trunc_u_convert_s(1.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 1.1523598697264038e-17, 1.8566135475946957e+53), + 2.139486966371021e+36, + "no_demote_mixed_mul_commuted(1.1523598697264038e-17, 1.8566135475946957e+53)" ); assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, -0.5), - 0.0, - "f32.i64.no_fold_trunc_u_convert_s(-0.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 2.3453285768874742e-37, 5.434641042224456e+66), + 1.2746019236910135e+30, + "no_demote_mixed_mul_commuted(2.3453285768874742e-37, 5.434641042224456e+66)" ); assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, 1.5), - 1.0, - "f32.i64.no_fold_trunc_s_convert_u(1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, -1.5), - 1.8446744073709552e+19, - "f32.i64.no_fold_trunc_s_convert_u(-1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, 1.5), - 1.0, - "f32.i64.no_fold_trunc_u_convert_u(1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, -0.5), - 0.0, - "f32.i64.no_fold_trunc_u_convert_u(-0.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, 1.5), - 1.0, - "f64.i64.no_fold_trunc_s_convert_s(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, -1.5), - -1.0, - "f64.i64.no_fold_trunc_s_convert_s(-1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, 1.5), - 1.0, - "f64.i64.no_fold_trunc_u_convert_s(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, -0.5), - 0.0, - "f64.i64.no_fold_trunc_u_convert_s(-0.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, 1.5), - 1.0, - "f64.i64.no_fold_trunc_s_convert_u(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, -1.5), - 1.8446744073709552e+19, - "f64.i64.no_fold_trunc_s_convert_u(-1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, 1.5), - 1.0, - "f64.i64.no_fold_trunc_u_convert_u(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, -0.5), - 0.0, - "f64.i64.no_fold_trunc_u_convert_u(-0.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 310965329461248.0, 1.1834791522838056e-51), + 3.6802097539506265e-37, + "no_demote_mixed_mul_commuted(310965329461248.0, 1.1834791522838056e-51)" ); } diff --git a/tests/gen/assert_float_exprs.40.c b/tests/gen/assert_float_exprs.40.c index f2b60a2..394cda9 100644 --- a/tests/gen/assert_float_exprs.40.c +++ b/tests/gen/assert_float_exprs.40.c @@ -8,54 +8,54 @@ void test() { floatexprs40Instance instance; floatexprs40Instantiate(&instance, resolveTestImports); printStart("float_exprs.40.wasm"); - floatexprs40_init(&instance, 0u, 15.100000381469727); - printOK("init(0u, 15.100000381469727)"); - floatexprs40_init(&instance, 4u, 15.199999809265137); - printOK("init(4u, 15.199999809265137)"); - floatexprs40_init(&instance, 8u, 15.300000190734863); - printOK("init(8u, 15.300000190734863)"); - floatexprs40_init(&instance, 12u, 15.399999618530273); - printOK("init(12u, 15.399999618530273)"); assertEqualF32( - floatexprs40_check(&instance, 0u), - 15.100000381469727, - "check(0u)" + floatexprs40_no_demote_mixed_div(&instance, 1.7886048835324162e+45, 1.4437566377602219e+31), + 123885479526400.0, + "no_demote_mixed_div(1.7886048835324162e+45, 1.4437566377602219e+31)" ); assertEqualF32( - floatexprs40_check(&instance, 4u), - 15.199999809265137, - "check(4u)" + floatexprs40_no_demote_mixed_div(&instance, 1.0952898401798359e-46, 2.5665392336139314e-25), + 4.267574928790326e-22, + "no_demote_mixed_div(1.0952898401798359e-46, 2.5665392336139314e-25)" ); assertEqualF32( - floatexprs40_check(&instance, 8u), - 15.300000190734863, - "check(8u)" + floatexprs40_no_demote_mixed_div(&instance, 9.080603501514862e-12, 4.8373775871448426e-39), + 1.8771749140976848e+27, + "no_demote_mixed_div(9.080603501514862e-12, 4.8373775871448426e-39)" ); assertEqualF32( - floatexprs40_check(&instance, 12u), - 15.399999618530273, - "check(12u)" + floatexprs40_no_demote_mixed_div(&instance, 3.782857642810886e-42, 3.438024151230309e-27), + 1.100299927768954e-15, + "no_demote_mixed_div(3.782857642810886e-42, 3.438024151230309e-27)" ); - floatexprs40_run(&instance, 16u, 3.0); - printOK("run(16u, 3.0)"); assertEqualF32( - floatexprs40_check(&instance, 0u), - 5.0333333015441895, - "check(0u)" + floatexprs40_no_demote_mixed_div(&instance, 3.4505644707116606e+22, 6.0033419644222506e+26), + 5.747739487560466e-05, + "no_demote_mixed_div(3.4505644707116606e+22, 6.0033419644222506e+26)" ); assertEqualF32( - floatexprs40_check(&instance, 4u), - 5.066666603088379, - "check(4u)" + floatexprs40_no_demote_mixed_div_commuted(&instance, 9.751511021865503e-23, 2.6675841907359984e-13), + 3.655558911130896e-10, + "no_demote_mixed_div_commuted(9.751511021865503e-23, 2.6675841907359984e-13)" ); assertEqualF32( - floatexprs40_check(&instance, 8u), - 5.099999904632568, - "check(8u)" + floatexprs40_no_demote_mixed_div_commuted(&instance, 100059280.0, 8.111351951123959e+47), + 1.2335770511297797e-40, + "no_demote_mixed_div_commuted(100059280.0, 8.111351951123959e+47)" ); assertEqualF32( - floatexprs40_check(&instance, 12u), - 5.133333206176758, - "check(12u)" + floatexprs40_no_demote_mixed_div_commuted(&instance, 1.7325049814914673e-12, 1.1227001577189032e-41), + 1.5431591465680899e+29, + "no_demote_mixed_div_commuted(1.7325049814914673e-12, 1.1227001577189032e-41)" + ); + assertEqualF32( + floatexprs40_no_demote_mixed_div_commuted(&instance, 1.752210102701486e+24, 2.5200730547930863e+63), + 6.95301877222545e-40, + "no_demote_mixed_div_commuted(1.752210102701486e+24, 2.5200730547930863e+63)" + ); + assertEqualF32( + floatexprs40_no_demote_mixed_div_commuted(&instance, 1.5513188252708936e-22, 3.5774408529541256e-60), + 4.33639286388721e+37, + "no_demote_mixed_div_commuted(1.5513188252708936e-22, 3.5774408529541256e-60)" ); } diff --git a/tests/gen/assert_float_exprs.41.c b/tests/gen/assert_float_exprs.41.c index 1ce3733..f28d950 100644 --- a/tests/gen/assert_float_exprs.41.c +++ b/tests/gen/assert_float_exprs.41.c @@ -8,54 +8,164 @@ void test() { floatexprs41Instance instance; floatexprs41Instantiate(&instance, resolveTestImports); printStart("float_exprs.41.wasm"); - floatexprs41_init(&instance, 0u, 15.1); - printOK("init(0u, 15.1)"); - floatexprs41_init(&instance, 8u, 15.2); - printOK("init(8u, 15.2)"); - floatexprs41_init(&instance, 16u, 15.3); - printOK("init(16u, 15.3)"); - floatexprs41_init(&instance, 24u, 15.4); - printOK("init(24u, 15.4)"); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, 1.5), + 1.0, + "f32.i32.no_fold_trunc_s_convert_s(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, -1.5), + -1.0, + "f32.i32.no_fold_trunc_s_convert_s(-1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, 1.5), + 1.0, + "f32.i32.no_fold_trunc_u_convert_s(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, -0.5), + 0.0, + "f32.i32.no_fold_trunc_u_convert_s(-0.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, 1.5), + 1.0, + "f32.i32.no_fold_trunc_s_convert_u(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, -1.5), + 4294967296.0, + "f32.i32.no_fold_trunc_s_convert_u(-1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, 1.5), + 1.0, + "f32.i32.no_fold_trunc_u_convert_u(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, -0.5), + 0.0, + "f32.i32.no_fold_trunc_u_convert_u(-0.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, 1.5), + 1.0, + "f64.i32.no_fold_trunc_s_convert_s(1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, -1.5), + -1.0, + "f64.i32.no_fold_trunc_s_convert_s(-1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, 1.5), + 1.0, + "f64.i32.no_fold_trunc_u_convert_s(1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, -0.5), + 0.0, + "f64.i32.no_fold_trunc_u_convert_s(-0.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, 1.5), + 1.0, + "f64.i32.no_fold_trunc_s_convert_u(1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, -1.5), + 4294967295.0, + "f64.i32.no_fold_trunc_s_convert_u(-1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, 1.5), + 1.0, + "f64.i32.no_fold_trunc_u_convert_u(1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, -0.5), + 0.0, + "f64.i32.no_fold_trunc_u_convert_u(-0.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, 1.5), + 1.0, + "f32.i64.no_fold_trunc_s_convert_s(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, -1.5), + -1.0, + "f32.i64.no_fold_trunc_s_convert_s(-1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, 1.5), + 1.0, + "f32.i64.no_fold_trunc_u_convert_s(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, -0.5), + 0.0, + "f32.i64.no_fold_trunc_u_convert_s(-0.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, 1.5), + 1.0, + "f32.i64.no_fold_trunc_s_convert_u(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, -1.5), + 1.8446744073709552e+19, + "f32.i64.no_fold_trunc_s_convert_u(-1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, 1.5), + 1.0, + "f32.i64.no_fold_trunc_u_convert_u(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, -0.5), + 0.0, + "f32.i64.no_fold_trunc_u_convert_u(-0.5)" + ); assertEqualF64( - floatexprs41_check(&instance, 0u), - 15.1, - "check(0u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, 1.5), + 1.0, + "f64.i64.no_fold_trunc_s_convert_s(1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 8u), - 15.2, - "check(8u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, -1.5), + -1.0, + "f64.i64.no_fold_trunc_s_convert_s(-1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 16u), - 15.3, - "check(16u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, 1.5), + 1.0, + "f64.i64.no_fold_trunc_u_convert_s(1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 24u), - 15.4, - "check(24u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, -0.5), + 0.0, + "f64.i64.no_fold_trunc_u_convert_s(-0.5)" ); - floatexprs41_run(&instance, 32u, 3.0); - printOK("run(32u, 3.0)"); assertEqualF64( - floatexprs41_check(&instance, 0u), - 5.033333333333333, - "check(0u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, 1.5), + 1.0, + "f64.i64.no_fold_trunc_s_convert_u(1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 8u), - 5.066666666666666, - "check(8u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, -1.5), + 1.8446744073709552e+19, + "f64.i64.no_fold_trunc_s_convert_u(-1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 16u), - 5.1000000000000005, - "check(16u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, 1.5), + 1.0, + "f64.i64.no_fold_trunc_u_convert_u(1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 24u), - 5.133333333333334, - "check(24u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, -0.5), + 0.0, + "f64.i64.no_fold_trunc_u_convert_u(-0.5)" ); } diff --git a/tests/gen/assert_float_exprs.42.c b/tests/gen/assert_float_exprs.42.c index 28de63b..1702e6f 100644 --- a/tests/gen/assert_float_exprs.42.c +++ b/tests/gen/assert_float_exprs.42.c @@ -8,124 +8,54 @@ void test() { floatexprs42Instance instance; floatexprs42Instantiate(&instance, resolveTestImports); printStart("float_exprs.42.wasm"); - assertEqualU32( - floatexprs42_f32X2Eult(&instance, 3.0, 2.0), - 0u, - "f32.ult(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eult(&instance, 2.0, 2.0), - 0u, - "f32.ult(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eult(&instance, 2.0, 3.0), - 1u, - "f32.ult(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eule(&instance, 3.0, 2.0), - 0u, - "f32.ule(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eule(&instance, 2.0, 2.0), - 1u, - "f32.ule(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eule(&instance, 2.0, 3.0), - 1u, - "f32.ule(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eugt(&instance, 3.0, 2.0), - 1u, - "f32.ugt(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eugt(&instance, 2.0, 2.0), - 0u, - "f32.ugt(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eugt(&instance, 2.0, 3.0), - 0u, - "f32.ugt(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f32X2Euge(&instance, 3.0, 2.0), - 1u, - "f32.uge(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Euge(&instance, 2.0, 2.0), - 1u, - "f32.uge(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Euge(&instance, 2.0, 3.0), - 0u, - "f32.uge(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eult(&instance, 3.0, 2.0), - 0u, - "f64.ult(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eult(&instance, 2.0, 2.0), - 0u, - "f64.ult(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eult(&instance, 2.0, 3.0), - 1u, - "f64.ult(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eule(&instance, 3.0, 2.0), - 0u, - "f64.ule(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eule(&instance, 2.0, 2.0), - 1u, - "f64.ule(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eule(&instance, 2.0, 3.0), - 1u, - "f64.ule(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eugt(&instance, 3.0, 2.0), - 1u, - "f64.ugt(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eugt(&instance, 2.0, 2.0), - 0u, - "f64.ugt(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eugt(&instance, 2.0, 3.0), - 0u, - "f64.ugt(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f64X2Euge(&instance, 3.0, 2.0), - 1u, - "f64.uge(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Euge(&instance, 2.0, 2.0), - 1u, - "f64.uge(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Euge(&instance, 2.0, 3.0), - 0u, - "f64.uge(2.0, 3.0)" + floatexprs42_init(&instance, 0u, 15.100000381469727); + printOK("init(0u, 15.100000381469727)"); + floatexprs42_init(&instance, 4u, 15.199999809265137); + printOK("init(4u, 15.199999809265137)"); + floatexprs42_init(&instance, 8u, 15.300000190734863); + printOK("init(8u, 15.300000190734863)"); + floatexprs42_init(&instance, 12u, 15.399999618530273); + printOK("init(12u, 15.399999618530273)"); + assertEqualF32( + floatexprs42_check(&instance, 0u), + 15.100000381469727, + "check(0u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 4u), + 15.199999809265137, + "check(4u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 8u), + 15.300000190734863, + "check(8u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 12u), + 15.399999618530273, + "check(12u)" + ); + floatexprs42_run(&instance, 16u, 3.0); + printOK("run(16u, 3.0)"); + assertEqualF32( + floatexprs42_check(&instance, 0u), + 5.0333333015441895, + "check(0u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 4u), + 5.066666603088379, + "check(4u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 8u), + 5.099999904632568, + "check(8u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 12u), + 5.133333206176758, + "check(12u)" ); } diff --git a/tests/gen/assert_float_exprs.43.c b/tests/gen/assert_float_exprs.43.c index 7312bd5..3d3fa49 100644 --- a/tests/gen/assert_float_exprs.43.c +++ b/tests/gen/assert_float_exprs.43.c @@ -8,84 +8,54 @@ void test() { floatexprs43Instance instance; floatexprs43Instantiate(&instance, resolveTestImports); printStart("float_exprs.43.wasm"); - assertEqualF32( - floatexprs43_f32X2Eno_fold_lt_select(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_lt_select(0.0, -0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_lt_select(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_lt_select(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_le_select(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_le_select(0.0, -0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_le_select(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_le_select(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_gt_select(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_gt_select(0.0, -0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_gt_select(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_gt_select(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_ge_select(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_ge_select(0.0, -0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_ge_select(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_ge_select(-0.0, 0.0)" - ); + floatexprs43_init(&instance, 0u, 15.1); + printOK("init(0u, 15.1)"); + floatexprs43_init(&instance, 8u, 15.2); + printOK("init(8u, 15.2)"); + floatexprs43_init(&instance, 16u, 15.3); + printOK("init(16u, 15.3)"); + floatexprs43_init(&instance, 24u, 15.4); + printOK("init(24u, 15.4)"); assertEqualF64( - floatexprs43_f64X2Eno_fold_lt_select(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_lt_select(0.0, -0.0)" + floatexprs43_check(&instance, 0u), + 15.1, + "check(0u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_lt_select(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_lt_select(-0.0, 0.0)" + floatexprs43_check(&instance, 8u), + 15.2, + "check(8u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_le_select(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_le_select(0.0, -0.0)" + floatexprs43_check(&instance, 16u), + 15.3, + "check(16u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_le_select(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_le_select(-0.0, 0.0)" + floatexprs43_check(&instance, 24u), + 15.4, + "check(24u)" ); + floatexprs43_run(&instance, 32u, 3.0); + printOK("run(32u, 3.0)"); assertEqualF64( - floatexprs43_f64X2Eno_fold_gt_select(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_gt_select(0.0, -0.0)" + floatexprs43_check(&instance, 0u), + 5.033333333333333, + "check(0u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_gt_select(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_gt_select(-0.0, 0.0)" + floatexprs43_check(&instance, 8u), + 5.066666666666666, + "check(8u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_ge_select(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_ge_select(0.0, -0.0)" + floatexprs43_check(&instance, 16u), + 5.1000000000000005, + "check(16u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_ge_select(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_ge_select(-0.0, 0.0)" + floatexprs43_check(&instance, 24u), + 5.133333333333334, + "check(24u)" ); } diff --git a/tests/gen/assert_float_exprs.44.c b/tests/gen/assert_float_exprs.44.c index 33b963e..3e117c4 100644 --- a/tests/gen/assert_float_exprs.44.c +++ b/tests/gen/assert_float_exprs.44.c @@ -8,84 +8,124 @@ void test() { floatexprs44Instance instance; floatexprs44Instantiate(&instance, resolveTestImports); printStart("float_exprs.44.wasm"); - assertEqualF32( - floatexprs44_f32X2Eno_fold_lt_if(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_lt_if(0.0, -0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_lt_if(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_lt_if(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_le_if(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_le_if(0.0, -0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_le_if(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_le_if(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_gt_if(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_gt_if(0.0, -0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_gt_if(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_gt_if(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_ge_if(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_ge_if(0.0, -0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_ge_if(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_ge_if(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_lt_if(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_lt_if(0.0, -0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_lt_if(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_lt_if(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_le_if(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_le_if(0.0, -0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_le_if(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_le_if(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_gt_if(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_gt_if(0.0, -0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_gt_if(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_gt_if(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_ge_if(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_ge_if(0.0, -0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_ge_if(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_ge_if(-0.0, 0.0)" + assertEqualU32( + floatexprs44_f32X2Eult(&instance, 3.0, 2.0), + 0u, + "f32.ult(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eult(&instance, 2.0, 2.0), + 0u, + "f32.ult(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eult(&instance, 2.0, 3.0), + 1u, + "f32.ult(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eule(&instance, 3.0, 2.0), + 0u, + "f32.ule(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eule(&instance, 2.0, 2.0), + 1u, + "f32.ule(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eule(&instance, 2.0, 3.0), + 1u, + "f32.ule(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eugt(&instance, 3.0, 2.0), + 1u, + "f32.ugt(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eugt(&instance, 2.0, 2.0), + 0u, + "f32.ugt(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eugt(&instance, 2.0, 3.0), + 0u, + "f32.ugt(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f32X2Euge(&instance, 3.0, 2.0), + 1u, + "f32.uge(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Euge(&instance, 2.0, 2.0), + 1u, + "f32.uge(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Euge(&instance, 2.0, 3.0), + 0u, + "f32.uge(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eult(&instance, 3.0, 2.0), + 0u, + "f64.ult(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eult(&instance, 2.0, 2.0), + 0u, + "f64.ult(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eult(&instance, 2.0, 3.0), + 1u, + "f64.ult(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eule(&instance, 3.0, 2.0), + 0u, + "f64.ule(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eule(&instance, 2.0, 2.0), + 1u, + "f64.ule(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eule(&instance, 2.0, 3.0), + 1u, + "f64.ule(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eugt(&instance, 3.0, 2.0), + 1u, + "f64.ugt(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eugt(&instance, 2.0, 2.0), + 0u, + "f64.ugt(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eugt(&instance, 2.0, 3.0), + 0u, + "f64.ugt(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f64X2Euge(&instance, 3.0, 2.0), + 1u, + "f64.uge(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Euge(&instance, 2.0, 2.0), + 1u, + "f64.uge(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Euge(&instance, 2.0, 3.0), + 0u, + "f64.uge(2.0, 3.0)" ); } diff --git a/tests/gen/assert_float_exprs.45.c b/tests/gen/assert_float_exprs.45.c index 8695068..c0f151f 100644 --- a/tests/gen/assert_float_exprs.45.c +++ b/tests/gen/assert_float_exprs.45.c @@ -9,83 +9,83 @@ void test() { floatexprs45Instantiate(&instance, resolveTestImports); printStart("float_exprs.45.wasm"); assertEqualF32( - floatexprs45_f32X2Eno_fold_lt_select_to_abs(&instance, 0.0), - 0.0, - "f32.no_fold_lt_select_to_abs(0.0)" - ); - assertEqualF32( - floatexprs45_f32X2Eno_fold_lt_select_to_abs(&instance, -0.0), + floatexprs45_f32X2Eno_fold_lt_select(&instance, 0.0, -0.0), -0.0, - "f32.no_fold_lt_select_to_abs(-0.0)" + "f32.no_fold_lt_select(0.0, -0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_le_select_to_abs(&instance, 0.0), - -0.0, - "f32.no_fold_le_select_to_abs(0.0)" + floatexprs45_f32X2Eno_fold_lt_select(&instance, -0.0, 0.0), + 0.0, + "f32.no_fold_lt_select(-0.0, 0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_le_select_to_abs(&instance, -0.0), + floatexprs45_f32X2Eno_fold_le_select(&instance, 0.0, -0.0), 0.0, - "f32.no_fold_le_select_to_abs(-0.0)" + "f32.no_fold_le_select(0.0, -0.0)" + ); + assertEqualF32( + floatexprs45_f32X2Eno_fold_le_select(&instance, -0.0, 0.0), + -0.0, + "f32.no_fold_le_select(-0.0, 0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_gt_select_to_abs(&instance, 0.0), + floatexprs45_f32X2Eno_fold_gt_select(&instance, 0.0, -0.0), -0.0, - "f32.no_fold_gt_select_to_abs(0.0)" + "f32.no_fold_gt_select(0.0, -0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_gt_select_to_abs(&instance, -0.0), + floatexprs45_f32X2Eno_fold_gt_select(&instance, -0.0, 0.0), 0.0, - "f32.no_fold_gt_select_to_abs(-0.0)" + "f32.no_fold_gt_select(-0.0, 0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_ge_select_to_abs(&instance, 0.0), + floatexprs45_f32X2Eno_fold_ge_select(&instance, 0.0, -0.0), 0.0, - "f32.no_fold_ge_select_to_abs(0.0)" + "f32.no_fold_ge_select(0.0, -0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_ge_select_to_abs(&instance, -0.0), + floatexprs45_f32X2Eno_fold_ge_select(&instance, -0.0, 0.0), -0.0, - "f32.no_fold_ge_select_to_abs(-0.0)" + "f32.no_fold_ge_select(-0.0, 0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_lt_select_to_abs(&instance, 0.0), - 0.0, - "f64.no_fold_lt_select_to_abs(0.0)" - ); - assertEqualF64( - floatexprs45_f64X2Eno_fold_lt_select_to_abs(&instance, -0.0), + floatexprs45_f64X2Eno_fold_lt_select(&instance, 0.0, -0.0), -0.0, - "f64.no_fold_lt_select_to_abs(-0.0)" + "f64.no_fold_lt_select(0.0, -0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_le_select_to_abs(&instance, 0.0), - -0.0, - "f64.no_fold_le_select_to_abs(0.0)" + floatexprs45_f64X2Eno_fold_lt_select(&instance, -0.0, 0.0), + 0.0, + "f64.no_fold_lt_select(-0.0, 0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_le_select_to_abs(&instance, -0.0), + floatexprs45_f64X2Eno_fold_le_select(&instance, 0.0, -0.0), 0.0, - "f64.no_fold_le_select_to_abs(-0.0)" + "f64.no_fold_le_select(0.0, -0.0)" + ); + assertEqualF64( + floatexprs45_f64X2Eno_fold_le_select(&instance, -0.0, 0.0), + -0.0, + "f64.no_fold_le_select(-0.0, 0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_gt_select_to_abs(&instance, 0.0), + floatexprs45_f64X2Eno_fold_gt_select(&instance, 0.0, -0.0), -0.0, - "f64.no_fold_gt_select_to_abs(0.0)" + "f64.no_fold_gt_select(0.0, -0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_gt_select_to_abs(&instance, -0.0), + floatexprs45_f64X2Eno_fold_gt_select(&instance, -0.0, 0.0), 0.0, - "f64.no_fold_gt_select_to_abs(-0.0)" + "f64.no_fold_gt_select(-0.0, 0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_ge_select_to_abs(&instance, 0.0), + floatexprs45_f64X2Eno_fold_ge_select(&instance, 0.0, -0.0), 0.0, - "f64.no_fold_ge_select_to_abs(0.0)" + "f64.no_fold_ge_select(0.0, -0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_ge_select_to_abs(&instance, -0.0), + floatexprs45_f64X2Eno_fold_ge_select(&instance, -0.0, 0.0), -0.0, - "f64.no_fold_ge_select_to_abs(-0.0)" + "f64.no_fold_ge_select(-0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.46.c b/tests/gen/assert_float_exprs.46.c index 586edd1..90a1e42 100644 --- a/tests/gen/assert_float_exprs.46.c +++ b/tests/gen/assert_float_exprs.46.c @@ -9,83 +9,83 @@ void test() { floatexprs46Instantiate(&instance, resolveTestImports); printStart("float_exprs.46.wasm"); assertEqualF32( - floatexprs46_f32X2Eno_fold_lt_if_to_abs(&instance, 0.0), - 0.0, - "f32.no_fold_lt_if_to_abs(0.0)" - ); - assertEqualF32( - floatexprs46_f32X2Eno_fold_lt_if_to_abs(&instance, -0.0), + floatexprs46_f32X2Eno_fold_lt_if(&instance, 0.0, -0.0), -0.0, - "f32.no_fold_lt_if_to_abs(-0.0)" + "f32.no_fold_lt_if(0.0, -0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_le_if_to_abs(&instance, 0.0), - -0.0, - "f32.no_fold_le_if_to_abs(0.0)" + floatexprs46_f32X2Eno_fold_lt_if(&instance, -0.0, 0.0), + 0.0, + "f32.no_fold_lt_if(-0.0, 0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_le_if_to_abs(&instance, -0.0), + floatexprs46_f32X2Eno_fold_le_if(&instance, 0.0, -0.0), 0.0, - "f32.no_fold_le_if_to_abs(-0.0)" + "f32.no_fold_le_if(0.0, -0.0)" + ); + assertEqualF32( + floatexprs46_f32X2Eno_fold_le_if(&instance, -0.0, 0.0), + -0.0, + "f32.no_fold_le_if(-0.0, 0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_gt_if_to_abs(&instance, 0.0), + floatexprs46_f32X2Eno_fold_gt_if(&instance, 0.0, -0.0), -0.0, - "f32.no_fold_gt_if_to_abs(0.0)" + "f32.no_fold_gt_if(0.0, -0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_gt_if_to_abs(&instance, -0.0), + floatexprs46_f32X2Eno_fold_gt_if(&instance, -0.0, 0.0), 0.0, - "f32.no_fold_gt_if_to_abs(-0.0)" + "f32.no_fold_gt_if(-0.0, 0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_ge_if_to_abs(&instance, 0.0), + floatexprs46_f32X2Eno_fold_ge_if(&instance, 0.0, -0.0), 0.0, - "f32.no_fold_ge_if_to_abs(0.0)" + "f32.no_fold_ge_if(0.0, -0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_ge_if_to_abs(&instance, -0.0), + floatexprs46_f32X2Eno_fold_ge_if(&instance, -0.0, 0.0), -0.0, - "f32.no_fold_ge_if_to_abs(-0.0)" + "f32.no_fold_ge_if(-0.0, 0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_lt_if_to_abs(&instance, 0.0), - 0.0, - "f64.no_fold_lt_if_to_abs(0.0)" - ); - assertEqualF64( - floatexprs46_f64X2Eno_fold_lt_if_to_abs(&instance, -0.0), + floatexprs46_f64X2Eno_fold_lt_if(&instance, 0.0, -0.0), -0.0, - "f64.no_fold_lt_if_to_abs(-0.0)" + "f64.no_fold_lt_if(0.0, -0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_le_if_to_abs(&instance, 0.0), - -0.0, - "f64.no_fold_le_if_to_abs(0.0)" + floatexprs46_f64X2Eno_fold_lt_if(&instance, -0.0, 0.0), + 0.0, + "f64.no_fold_lt_if(-0.0, 0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_le_if_to_abs(&instance, -0.0), + floatexprs46_f64X2Eno_fold_le_if(&instance, 0.0, -0.0), 0.0, - "f64.no_fold_le_if_to_abs(-0.0)" + "f64.no_fold_le_if(0.0, -0.0)" + ); + assertEqualF64( + floatexprs46_f64X2Eno_fold_le_if(&instance, -0.0, 0.0), + -0.0, + "f64.no_fold_le_if(-0.0, 0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_gt_if_to_abs(&instance, 0.0), + floatexprs46_f64X2Eno_fold_gt_if(&instance, 0.0, -0.0), -0.0, - "f64.no_fold_gt_if_to_abs(0.0)" + "f64.no_fold_gt_if(0.0, -0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_gt_if_to_abs(&instance, -0.0), + floatexprs46_f64X2Eno_fold_gt_if(&instance, -0.0, 0.0), 0.0, - "f64.no_fold_gt_if_to_abs(-0.0)" + "f64.no_fold_gt_if(-0.0, 0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_ge_if_to_abs(&instance, 0.0), + floatexprs46_f64X2Eno_fold_ge_if(&instance, 0.0, -0.0), 0.0, - "f64.no_fold_ge_if_to_abs(0.0)" + "f64.no_fold_ge_if(0.0, -0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_ge_if_to_abs(&instance, -0.0), + floatexprs46_f64X2Eno_fold_ge_if(&instance, -0.0, 0.0), -0.0, - "f64.no_fold_ge_if_to_abs(-0.0)" + "f64.no_fold_ge_if(-0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.47.c b/tests/gen/assert_float_exprs.47.c index f34abbc..aad03a0 100644 --- a/tests/gen/assert_float_exprs.47.c +++ b/tests/gen/assert_float_exprs.47.c @@ -9,13 +9,83 @@ void test() { floatexprs47Instantiate(&instance, resolveTestImports); printStart("float_exprs.47.wasm"); assertEqualF32( - floatexprs47_f32X2Eincorrect_correction(&instance), - 1.1920928955078125e-07, - "f32.incorrect_correction()" + floatexprs47_f32X2Eno_fold_lt_select_to_abs(&instance, 0.0), + 0.0, + "f32.no_fold_lt_select_to_abs(0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_lt_select_to_abs(&instance, -0.0), + -0.0, + "f32.no_fold_lt_select_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_le_select_to_abs(&instance, 0.0), + -0.0, + "f32.no_fold_le_select_to_abs(0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_le_select_to_abs(&instance, -0.0), + 0.0, + "f32.no_fold_le_select_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_gt_select_to_abs(&instance, 0.0), + -0.0, + "f32.no_fold_gt_select_to_abs(0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_gt_select_to_abs(&instance, -0.0), + 0.0, + "f32.no_fold_gt_select_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_ge_select_to_abs(&instance, 0.0), + 0.0, + "f32.no_fold_ge_select_to_abs(0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_ge_select_to_abs(&instance, -0.0), + -0.0, + "f32.no_fold_ge_select_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_lt_select_to_abs(&instance, 0.0), + 0.0, + "f64.no_fold_lt_select_to_abs(0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_lt_select_to_abs(&instance, -0.0), + -0.0, + "f64.no_fold_lt_select_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_le_select_to_abs(&instance, 0.0), + -0.0, + "f64.no_fold_le_select_to_abs(0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_le_select_to_abs(&instance, -0.0), + 0.0, + "f64.no_fold_le_select_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_gt_select_to_abs(&instance, 0.0), + -0.0, + "f64.no_fold_gt_select_to_abs(0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_gt_select_to_abs(&instance, -0.0), + 0.0, + "f64.no_fold_gt_select_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_ge_select_to_abs(&instance, 0.0), + 0.0, + "f64.no_fold_ge_select_to_abs(0.0)" ); assertEqualF64( - floatexprs47_f64X2Eincorrect_correction(&instance), - -2.220446049250313e-16, - "f64.incorrect_correction()" + floatexprs47_f64X2Eno_fold_ge_select_to_abs(&instance, -0.0), + -0.0, + "f64.no_fold_ge_select_to_abs(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.48.c b/tests/gen/assert_float_exprs.48.c index 5ab21f5..d60d05c 100644 --- a/tests/gen/assert_float_exprs.48.c +++ b/tests/gen/assert_float_exprs.48.c @@ -9,8 +9,83 @@ void test() { floatexprs48Instantiate(&instance, resolveTestImports); printStart("float_exprs.48.wasm"); assertEqualF32( - floatexprs48_calculate(&instance), - -466.9268493652344, - "calculate()" + floatexprs48_f32X2Eno_fold_lt_if_to_abs(&instance, 0.0), + 0.0, + "f32.no_fold_lt_if_to_abs(0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_lt_if_to_abs(&instance, -0.0), + -0.0, + "f32.no_fold_lt_if_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_le_if_to_abs(&instance, 0.0), + -0.0, + "f32.no_fold_le_if_to_abs(0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_le_if_to_abs(&instance, -0.0), + 0.0, + "f32.no_fold_le_if_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_gt_if_to_abs(&instance, 0.0), + -0.0, + "f32.no_fold_gt_if_to_abs(0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_gt_if_to_abs(&instance, -0.0), + 0.0, + "f32.no_fold_gt_if_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_ge_if_to_abs(&instance, 0.0), + 0.0, + "f32.no_fold_ge_if_to_abs(0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_ge_if_to_abs(&instance, -0.0), + -0.0, + "f32.no_fold_ge_if_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_lt_if_to_abs(&instance, 0.0), + 0.0, + "f64.no_fold_lt_if_to_abs(0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_lt_if_to_abs(&instance, -0.0), + -0.0, + "f64.no_fold_lt_if_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_le_if_to_abs(&instance, 0.0), + -0.0, + "f64.no_fold_le_if_to_abs(0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_le_if_to_abs(&instance, -0.0), + 0.0, + "f64.no_fold_le_if_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_gt_if_to_abs(&instance, 0.0), + -0.0, + "f64.no_fold_gt_if_to_abs(0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_gt_if_to_abs(&instance, -0.0), + 0.0, + "f64.no_fold_gt_if_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_ge_if_to_abs(&instance, 0.0), + 0.0, + "f64.no_fold_ge_if_to_abs(0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_ge_if_to_abs(&instance, -0.0), + -0.0, + "f64.no_fold_ge_if_to_abs(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.49.c b/tests/gen/assert_float_exprs.49.c index 14a2a29..e6c8007 100644 --- a/tests/gen/assert_float_exprs.49.c +++ b/tests/gen/assert_float_exprs.49.c @@ -8,9 +8,14 @@ void test() { floatexprs49Instance instance; floatexprs49Instantiate(&instance, resolveTestImports); printStart("float_exprs.49.wasm"); + assertEqualF32( + floatexprs49_f32X2Eincorrect_correction(&instance), + 1.1920928955078125e-07, + "f32.incorrect_correction()" + ); assertEqualF64( - floatexprs49_calculate(&instance), - -466.926956301738, - "calculate()" + floatexprs49_f64X2Eincorrect_correction(&instance), + -2.220446049250313e-16, + "f64.incorrect_correction()" ); } diff --git a/tests/gen/assert_float_exprs.50.c b/tests/gen/assert_float_exprs.50.c index c431e8b..8c5950b 100644 --- a/tests/gen/assert_float_exprs.50.c +++ b/tests/gen/assert_float_exprs.50.c @@ -9,8 +9,8 @@ void test() { floatexprs50Instantiate(&instance, resolveTestImports); printStart("float_exprs.50.wasm"); assertEqualF32( - floatexprs50_llvm_pr26746(&instance, -0.0), - 0.0, - "llvm_pr26746(-0.0)" + floatexprs50_calculate(&instance), + -466.9268493652344, + "calculate()" ); } diff --git a/tests/gen/assert_float_exprs.51.c b/tests/gen/assert_float_exprs.51.c index ed01c2f..e9ec96b 100644 --- a/tests/gen/assert_float_exprs.51.c +++ b/tests/gen/assert_float_exprs.51.c @@ -8,9 +8,9 @@ void test() { floatexprs51Instance instance; floatexprs51Instantiate(&instance, resolveTestImports); printStart("float_exprs.51.wasm"); - assertEqualF32( - floatexprs51_llvm_pr27153(&instance, 33554434u), - 25165824.0, - "llvm_pr27153(33554434u)" + assertEqualF64( + floatexprs51_calculate(&instance), + -466.926956301738, + "calculate()" ); } diff --git a/tests/gen/assert_float_exprs.52.c b/tests/gen/assert_float_exprs.52.c index d63b560..e99ada4 100644 --- a/tests/gen/assert_float_exprs.52.c +++ b/tests/gen/assert_float_exprs.52.c @@ -9,8 +9,8 @@ void test() { floatexprs52Instantiate(&instance, resolveTestImports); printStart("float_exprs.52.wasm"); assertEqualF32( - floatexprs52_llvm_pr27036(&instance, 4269932491u, 14942208u), - -10092596.0, - "llvm_pr27036(4269932491u, 14942208u)" + floatexprs52_llvm_pr26746(&instance, -0.0), + 0.0, + "llvm_pr26746(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.53.c b/tests/gen/assert_float_exprs.53.c index 58d7f14..c1bb6d6 100644 --- a/tests/gen/assert_float_exprs.53.c +++ b/tests/gen/assert_float_exprs.53.c @@ -8,19 +8,9 @@ void test() { floatexprs53Instance instance; floatexprs53Instantiate(&instance, resolveTestImports); printStart("float_exprs.53.wasm"); - assertEqualF64( - floatexprs53_thepast0(&instance, 4.450147717014403e-308, 0.9999999999999999, 2.0, 0.5), - 4.4501477170144023e-308, - "thepast0(4.450147717014403e-308, 0.9999999999999999, 2.0, 0.5)" - ); - assertEqualF64( - floatexprs53_thepast1(&instance, 5.551115123125783e-17, 0.9999999999999999, 5.551115123125783e-17), - -6.162975822039155e-33, - "thepast1(5.551115123125783e-17, 0.9999999999999999, 5.551115123125783e-17)" - ); assertEqualF32( - floatexprs53_thepast2(&instance, 2.350988701644575e-38, 0.5, 1.0), - 1.1754943508222875e-38, - "thepast2(2.350988701644575e-38, 0.5, 1.0)" + floatexprs53_llvm_pr27153(&instance, 33554434u), + 25165824.0, + "llvm_pr27153(33554434u)" ); } diff --git a/tests/gen/assert_float_exprs.54.c b/tests/gen/assert_float_exprs.54.c index ade7ff6..c0d8e37 100644 --- a/tests/gen/assert_float_exprs.54.c +++ b/tests/gen/assert_float_exprs.54.c @@ -9,8 +9,8 @@ void test() { floatexprs54Instantiate(&instance, resolveTestImports); printStart("float_exprs.54.wasm"); assertEqualF32( - floatexprs54_inverse(&instance, 96.0), - 0.010416666977107525, - "inverse(96.0)" + floatexprs54_llvm_pr27036(&instance, 4269932491u, 14942208u), + -10092596.0, + "llvm_pr27036(4269932491u, 14942208u)" ); } diff --git a/tests/gen/assert_float_exprs.55.c b/tests/gen/assert_float_exprs.55.c index e4a9986..b3f8de1 100644 --- a/tests/gen/assert_float_exprs.55.c +++ b/tests/gen/assert_float_exprs.55.c @@ -8,14 +8,19 @@ void test() { floatexprs55Instance instance; floatexprs55Instantiate(&instance, resolveTestImports); printStart("float_exprs.55.wasm"); - assertEqualF32( - floatexprs55_f32_sqrt_minus_2(&instance, 4.0), - 0.0, - "f32_sqrt_minus_2(4.0)" + assertEqualF64( + floatexprs55_thepast0(&instance, 4.450147717014403e-308, 0.9999999999999999, 2.0, 0.5), + 4.4501477170144023e-308, + "thepast0(4.450147717014403e-308, 0.9999999999999999, 2.0, 0.5)" ); assertEqualF64( - floatexprs55_f64_sqrt_minus_2(&instance, 4.0), - 0.0, - "f64_sqrt_minus_2(4.0)" + floatexprs55_thepast1(&instance, 5.551115123125783e-17, 0.9999999999999999, 5.551115123125783e-17), + -6.162975822039155e-33, + "thepast1(5.551115123125783e-17, 0.9999999999999999, 5.551115123125783e-17)" + ); + assertEqualF32( + floatexprs55_thepast2(&instance, 2.350988701644575e-38, 0.5, 1.0), + 1.1754943508222875e-38, + "thepast2(2.350988701644575e-38, 0.5, 1.0)" ); } diff --git a/tests/gen/assert_float_exprs.56.c b/tests/gen/assert_float_exprs.56.c index a500b29..4ecb0a9 100644 --- a/tests/gen/assert_float_exprs.56.c +++ b/tests/gen/assert_float_exprs.56.c @@ -9,93 +9,8 @@ void test() { floatexprs56Instantiate(&instance, resolveTestImports); printStart("float_exprs.56.wasm"); assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, -7.043578799867927e+19), - -7.043578360063276e+19, - "f32.no_fold_recip_recip(-7.043578799867927e+19)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, 1.2466100672499874e-23), - 1.2466099883638969e-23, - "f32.no_fold_recip_recip(1.2466100672499874e-23)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, 9.718454544006024e-20), - 9.718455190240878e-20, - "f32.no_fold_recip_recip(9.718454544006024e-20)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, -30.400758743286133), - -30.400760650634766, - "f32.no_fold_recip_recip(-30.400758743286133)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, 2.3316591903901535e+21), - 2.3316590496526652e+21, - "f32.no_fold_recip_recip(2.3316591903901535e+21)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, -0.0), - -0.0, - "f32.no_fold_recip_recip(-0.0)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, 0.0), - 0.0, - "f32.no_fold_recip_recip(0.0)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, -INFINITY), - -INFINITY, - "f32.no_fold_recip_recip(-INFINITY)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, INFINITY), - INFINITY, - "f32.no_fold_recip_recip(INFINITY)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, -6.5797153436288686e+44), - -6.579715343628869e+44, - "f64.no_fold_recip_recip(-6.5797153436288686e+44)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, -1.4424693186857643e+20), - -1.4424693186857642e+20, - "f64.no_fold_recip_recip(-1.4424693186857643e+20)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, 1.8499468920623135e+50), - 1.8499468920623133e+50, - "f64.no_fold_recip_recip(1.8499468920623135e+50)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, 5.779584288006583e-207), - 5.779584288006582e-207, - "f64.no_fold_recip_recip(5.779584288006583e-207)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, 5.150117869614164e+271), - 5.1501178696141634e+271, - "f64.no_fold_recip_recip(5.150117869614164e+271)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, -0.0), - -0.0, - "f64.no_fold_recip_recip(-0.0)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, 0.0), - 0.0, - "f64.no_fold_recip_recip(0.0)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, -INFINITY), - -INFINITY, - "f64.no_fold_recip_recip(-INFINITY)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, INFINITY), - INFINITY, - "f64.no_fold_recip_recip(INFINITY)" + floatexprs56_inverse(&instance, 96.0), + 0.010416666977107525, + "inverse(96.0)" ); } diff --git a/tests/gen/assert_float_exprs.57.c b/tests/gen/assert_float_exprs.57.c index b03dde2..65c8ee1 100644 --- a/tests/gen/assert_float_exprs.57.c +++ b/tests/gen/assert_float_exprs.57.c @@ -9,53 +9,13 @@ void test() { floatexprs57Instantiate(&instance, resolveTestImports); printStart("float_exprs.57.wasm"); assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, -5.371186465411003e-17, 9.744327905706555e-17), - -6.610228647323988e-33, - "f32.no_algebraic_factoring(-5.371186465411003e-17, 9.744327905706555e-17)" - ); - assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, -19756732.0, 32770204.0), - -683557802475520.0, - "f32.no_algebraic_factoring(-19756732.0, 32770204.0)" - ); - assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, 52314148700160.0, -145309984358400.0), - -1.8378221355451492e+28, - "f32.no_algebraic_factoring(52314148700160.0, -145309984358400.0)" - ); - assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, 195260.375, -227.75723266601562), - 38126563328.0, - "f32.no_algebraic_factoring(195260.375, -227.75723266601562)" - ); - assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, -237.487060546875, -972341.5), - -945447960576.0, - "f32.no_algebraic_factoring(-237.487060546875, -972341.5)" - ); - assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, 9.639720335949767e-144, 8.019175443606207e-140), - -6.430717386609473e-279, - "f64.no_algebraic_factoring(9.639720335949767e-144, 8.019175443606207e-140)" - ); - assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, 5.166066590392027e-114, 1.494333315888213e-120), - 2.6688244016362468e-227, - "f64.no_algebraic_factoring(5.166066590392027e-114, 1.494333315888213e-120)" - ); - assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, -2.866135870517635e-114, -1.2114355254268516e-111), - -1.4675678175314036e-222, - "f64.no_algebraic_factoring(-2.866135870517635e-114, -1.2114355254268516e-111)" - ); - assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, -1.2920992810078149e+54, 6.62717187728034e+56), - -4.391924013896023e+113, - "f64.no_algebraic_factoring(-1.2920992810078149e+54, 6.62717187728034e+56)" + floatexprs57_f32_sqrt_minus_2(&instance, 4.0), + 0.0, + "f32_sqrt_minus_2(4.0)" ); assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, 2.624279568901057e+34, -1.6250233986050802e+27), - 6.886843255751491e+68, - "f64.no_algebraic_factoring(2.624279568901057e+34, -1.6250233986050802e+27)" + floatexprs57_f64_sqrt_minus_2(&instance, 4.0), + 0.0, + "f64_sqrt_minus_2(4.0)" ); } diff --git a/tests/gen/assert_float_exprs.58.c b/tests/gen/assert_float_exprs.58.c index 0dfb196..25f75a6 100644 --- a/tests/gen/assert_float_exprs.58.c +++ b/tests/gen/assert_float_exprs.58.c @@ -9,53 +9,93 @@ void test() { floatexprs58Instantiate(&instance, resolveTestImports); printStart("float_exprs.58.wasm"); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, 2.2102996109817433e-14, 3.146527526379228e-12), - -9.900147562538522e-24, - "f32.no_algebraic_factoring(2.2102996109817433e-14, 3.146527526379228e-12)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, -7.043578799867927e+19), + -7.043578360063276e+19, + "f32.no_fold_recip_recip(-7.043578799867927e+19)" ); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, -3289460768768.0, -15941538816.0), - 1.082029860086528e+25, - "f32.no_algebraic_factoring(-3289460768768.0, -15941538816.0)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, 1.2466100672499874e-23), + 1.2466099883638969e-23, + "f32.no_fold_recip_recip(1.2466100672499874e-23)" ); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, 0.00036497542168945074, -0.00016153714386746287), - 1.0711280395980793e-07, - "f32.no_algebraic_factoring(0.00036497542168945074, -0.00016153714386746287)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, 9.718454544006024e-20), + 9.718455190240878e-20, + "f32.no_fold_recip_recip(9.718454544006024e-20)" ); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, 6.538326602139807e-14, -2.7412772911545626e-14), - 3.523511174043803e-27, - "f32.no_algebraic_factoring(6.538326602139807e-14, -2.7412772911545626e-14)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, -30.400758743286133), + -30.400760650634766, + "f32.no_fold_recip_recip(-30.400758743286133)" ); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, 3609681910038528.0, -5260104429469696.0), - -1.463889604789756e+31, - "f32.no_algebraic_factoring(3609681910038528.0, -5260104429469696.0)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, 2.3316591903901535e+21), + 2.3316590496526652e+21, + "f32.no_fold_recip_recip(2.3316591903901535e+21)" + ); + assertEqualF32( + floatexprs58_f32X2Eno_fold_recip_recip(&instance, -0.0), + -0.0, + "f32.no_fold_recip_recip(-0.0)" + ); + assertEqualF32( + floatexprs58_f32X2Eno_fold_recip_recip(&instance, 0.0), + 0.0, + "f32.no_fold_recip_recip(0.0)" + ); + assertEqualF32( + floatexprs58_f32X2Eno_fold_recip_recip(&instance, -INFINITY), + -INFINITY, + "f32.no_fold_recip_recip(-INFINITY)" + ); + assertEqualF32( + floatexprs58_f32X2Eno_fold_recip_recip(&instance, INFINITY), + INFINITY, + "f32.no_fold_recip_recip(INFINITY)" + ); + assertEqualF64( + floatexprs58_f64X2Eno_fold_recip_recip(&instance, -6.5797153436288686e+44), + -6.579715343628869e+44, + "f64.no_fold_recip_recip(-6.5797153436288686e+44)" + ); + assertEqualF64( + floatexprs58_f64X2Eno_fold_recip_recip(&instance, -1.4424693186857643e+20), + -1.4424693186857642e+20, + "f64.no_fold_recip_recip(-1.4424693186857643e+20)" + ); + assertEqualF64( + floatexprs58_f64X2Eno_fold_recip_recip(&instance, 1.8499468920623135e+50), + 1.8499468920623133e+50, + "f64.no_fold_recip_recip(1.8499468920623135e+50)" + ); + assertEqualF64( + floatexprs58_f64X2Eno_fold_recip_recip(&instance, 5.779584288006583e-207), + 5.779584288006582e-207, + "f64.no_fold_recip_recip(5.779584288006583e-207)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, 2.136404543498951e+107, -2.928587558394428e+101), - 4.564224373474385e+214, - "f64.no_algebraic_factoring(2.136404543498951e+107, -2.928587558394428e+101)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, 5.150117869614164e+271), + 5.1501178696141634e+271, + "f64.no_fold_recip_recip(5.150117869614164e+271)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, -1.2290171159244358e+93, -8.2221589190166e+99), - -6.760389728956271e+199, - "f64.no_algebraic_factoring(-1.2290171159244358e+93, -8.2221589190166e+99)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, -0.0), + -0.0, + "f64.no_fold_recip_recip(-0.0)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, 5477733829752.252, -970738900948.5906), - 2.9063233895797397e+25, - "f64.no_algebraic_factoring(5477733829752.252, -970738900948.5906)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, 0.0), + 0.0, + "f64.no_fold_recip_recip(0.0)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, -1.0689141744923551e+55, -1.7337839359373804e+50), - 1.1425775121300724e+110, - "f64.no_algebraic_factoring(-1.0689141744923551e+55, -1.7337839359373804e+50)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, -INFINITY), + -INFINITY, + "f64.no_fold_recip_recip(-INFINITY)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, -1.0295699877022106e-71, -8.952274637805908e-72), - 2.5858214767010105e-143, - "f64.no_algebraic_factoring(-1.0295699877022106e-71, -8.952274637805908e-72)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, INFINITY), + INFINITY, + "f64.no_fold_recip_recip(INFINITY)" ); } diff --git a/tests/gen/assert_float_exprs.59.c b/tests/gen/assert_float_exprs.59.c index 876e2ff..a9cb4f6 100644 --- a/tests/gen/assert_float_exprs.59.c +++ b/tests/gen/assert_float_exprs.59.c @@ -8,25 +8,54 @@ void test() { floatexprs59Instance instance; floatexprs59Instantiate(&instance, resolveTestImports); printStart("float_exprs.59.wasm"); - floatexprs59_f32X2Esimple_x4_sum(&instance, 0u, 16u, 32u); assertEqualF32( - floatexprs59_f32X2Eload(&instance, 32u), - 2.802596928649634e-45, - "f32.load(32u)" + floatexprs59_f32X2Eno_algebraic_factoring(&instance, -5.371186465411003e-17, 9.744327905706555e-17), + -6.610228647323988e-33, + "f32.no_algebraic_factoring(-5.371186465411003e-17, 9.744327905706555e-17)" ); assertEqualF32( - floatexprs59_f32X2Eload(&instance, 36u), - 0.0, - "f32.load(36u)" + floatexprs59_f32X2Eno_algebraic_factoring(&instance, -19756732.0, 32770204.0), + -683557802475520.0, + "f32.no_algebraic_factoring(-19756732.0, 32770204.0)" ); assertEqualF32( - floatexprs59_f32X2Eload(&instance, 40u), - 1.401298464324817e-45, - "f32.load(40u)" + floatexprs59_f32X2Eno_algebraic_factoring(&instance, 52314148700160.0, -145309984358400.0), + -1.8378221355451492e+28, + "f32.no_algebraic_factoring(52314148700160.0, -145309984358400.0)" ); assertEqualF32( - floatexprs59_f32X2Eload(&instance, 44u), - -1.401298464324817e-45, - "f32.load(44u)" + floatexprs59_f32X2Eno_algebraic_factoring(&instance, 195260.375, -227.75723266601562), + 38126563328.0, + "f32.no_algebraic_factoring(195260.375, -227.75723266601562)" + ); + assertEqualF32( + floatexprs59_f32X2Eno_algebraic_factoring(&instance, -237.487060546875, -972341.5), + -945447960576.0, + "f32.no_algebraic_factoring(-237.487060546875, -972341.5)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, 9.639720335949767e-144, 8.019175443606207e-140), + -6.430717386609473e-279, + "f64.no_algebraic_factoring(9.639720335949767e-144, 8.019175443606207e-140)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, 5.166066590392027e-114, 1.494333315888213e-120), + 2.6688244016362468e-227, + "f64.no_algebraic_factoring(5.166066590392027e-114, 1.494333315888213e-120)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, -2.866135870517635e-114, -1.2114355254268516e-111), + -1.4675678175314036e-222, + "f64.no_algebraic_factoring(-2.866135870517635e-114, -1.2114355254268516e-111)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, -1.2920992810078149e+54, 6.62717187728034e+56), + -4.391924013896023e+113, + "f64.no_algebraic_factoring(-1.2920992810078149e+54, 6.62717187728034e+56)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, 2.624279568901057e+34, -1.6250233986050802e+27), + 6.886843255751491e+68, + "f64.no_algebraic_factoring(2.624279568901057e+34, -1.6250233986050802e+27)" ); } diff --git a/tests/gen/assert_float_exprs.60.c b/tests/gen/assert_float_exprs.60.c index 81715a6..e8ed050 100644 --- a/tests/gen/assert_float_exprs.60.c +++ b/tests/gen/assert_float_exprs.60.c @@ -8,25 +8,54 @@ void test() { floatexprs60Instance instance; floatexprs60Instantiate(&instance, resolveTestImports); printStart("float_exprs.60.wasm"); - floatexprs60_f64X2Esimple_x4_sum(&instance, 0u, 32u, 64u); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, 2.2102996109817433e-14, 3.146527526379228e-12), + -9.900147562538522e-24, + "f32.no_algebraic_factoring(2.2102996109817433e-14, 3.146527526379228e-12)" + ); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, -3289460768768.0, -15941538816.0), + 1.082029860086528e+25, + "f32.no_algebraic_factoring(-3289460768768.0, -15941538816.0)" + ); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, 0.00036497542168945074, -0.00016153714386746287), + 1.0711280395980793e-07, + "f32.no_algebraic_factoring(0.00036497542168945074, -0.00016153714386746287)" + ); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, 6.538326602139807e-14, -2.7412772911545626e-14), + 3.523511174043803e-27, + "f32.no_algebraic_factoring(6.538326602139807e-14, -2.7412772911545626e-14)" + ); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, 3609681910038528.0, -5260104429469696.0), + -1.463889604789756e+31, + "f32.no_algebraic_factoring(3609681910038528.0, -5260104429469696.0)" + ); + assertEqualF64( + floatexprs60_f64X2Eno_algebraic_factoring(&instance, 2.136404543498951e+107, -2.928587558394428e+101), + 4.564224373474385e+214, + "f64.no_algebraic_factoring(2.136404543498951e+107, -2.928587558394428e+101)" + ); assertEqualF64( - floatexprs60_f64X2Eload(&instance, 64u), - 1e-323, - "f64.load(64u)" + floatexprs60_f64X2Eno_algebraic_factoring(&instance, -1.2290171159244358e+93, -8.2221589190166e+99), + -6.760389728956271e+199, + "f64.no_algebraic_factoring(-1.2290171159244358e+93, -8.2221589190166e+99)" ); assertEqualF64( - floatexprs60_f64X2Eload(&instance, 72u), - 0.0, - "f64.load(72u)" + floatexprs60_f64X2Eno_algebraic_factoring(&instance, 5477733829752.252, -970738900948.5906), + 2.9063233895797397e+25, + "f64.no_algebraic_factoring(5477733829752.252, -970738900948.5906)" ); assertEqualF64( - floatexprs60_f64X2Eload(&instance, 80u), - 5e-324, - "f64.load(80u)" + floatexprs60_f64X2Eno_algebraic_factoring(&instance, -1.0689141744923551e+55, -1.7337839359373804e+50), + 1.1425775121300724e+110, + "f64.no_algebraic_factoring(-1.0689141744923551e+55, -1.7337839359373804e+50)" ); assertEqualF64( - floatexprs60_f64X2Eload(&instance, 88u), - -5e-324, - "f64.load(88u)" + floatexprs60_f64X2Eno_algebraic_factoring(&instance, -1.0295699877022106e-71, -8.952274637805908e-72), + 2.5858214767010105e-143, + "f64.no_algebraic_factoring(-1.0295699877022106e-71, -8.952274637805908e-72)" ); } diff --git a/tests/gen/assert_float_exprs.61.c b/tests/gen/assert_float_exprs.61.c index 6586091..1df342d 100644 --- a/tests/gen/assert_float_exprs.61.c +++ b/tests/gen/assert_float_exprs.61.c @@ -8,14 +8,25 @@ void test() { floatexprs61Instance instance; floatexprs61Instantiate(&instance, resolveTestImports); printStart("float_exprs.61.wasm"); + floatexprs61_f32X2Esimple_x4_sum(&instance, 0u, 16u, 32u); assertEqualF32( - floatexprs61_f32X2Ekahan_sum(&instance, 0u, 256u), - -2.1558138246206565e+31, - "f32.kahan_sum(0u, 256u)" + floatexprs61_f32X2Eload(&instance, 32u), + 2.802596928649634e-45, + "f32.load(32u)" ); assertEqualF32( - floatexprs61_f32X2Eplain_sum(&instance, 0u, 256u), - -1.6487539472071106e+31, - "f32.plain_sum(0u, 256u)" + floatexprs61_f32X2Eload(&instance, 36u), + 0.0, + "f32.load(36u)" + ); + assertEqualF32( + floatexprs61_f32X2Eload(&instance, 40u), + 1.401298464324817e-45, + "f32.load(40u)" + ); + assertEqualF32( + floatexprs61_f32X2Eload(&instance, 44u), + -1.401298464324817e-45, + "f32.load(44u)" ); } diff --git a/tests/gen/assert_float_exprs.62.c b/tests/gen/assert_float_exprs.62.c index dfb38a5..c7ee8eb 100644 --- a/tests/gen/assert_float_exprs.62.c +++ b/tests/gen/assert_float_exprs.62.c @@ -8,14 +8,25 @@ void test() { floatexprs62Instance instance; floatexprs62Instantiate(&instance, resolveTestImports); printStart("float_exprs.62.wasm"); + floatexprs62_f64X2Esimple_x4_sum(&instance, 0u, 32u, 64u); assertEqualF64( - floatexprs62_f64X2Ekahan_sum(&instance, 0u, 256u), - 4.996401743142033e+300, - "f64.kahan_sum(0u, 256u)" + floatexprs62_f64X2Eload(&instance, 64u), + 1e-323, + "f64.load(64u)" ); assertEqualF64( - floatexprs62_f64X2Eplain_sum(&instance, 0u, 256u), - 4.9964017432979576e+300, - "f64.plain_sum(0u, 256u)" + floatexprs62_f64X2Eload(&instance, 72u), + 0.0, + "f64.load(72u)" + ); + assertEqualF64( + floatexprs62_f64X2Eload(&instance, 80u), + 5e-324, + "f64.load(80u)" + ); + assertEqualF64( + floatexprs62_f64X2Eload(&instance, 88u), + -5e-324, + "f64.load(88u)" ); } diff --git a/tests/gen/assert_float_exprs.63.c b/tests/gen/assert_float_exprs.63.c index e101415..ee471a2 100644 --- a/tests/gen/assert_float_exprs.63.c +++ b/tests/gen/assert_float_exprs.63.c @@ -9,43 +9,13 @@ void test() { floatexprs63Instantiate(&instance, resolveTestImports); printStart("float_exprs.63.wasm"); assertEqualF32( - floatexprs63_f32X2Eno_fold_neg_sub(&instance, -0.0, -0.0), - -0.0, - "f32.no_fold_neg_sub(-0.0, -0.0)" + floatexprs63_f32X2Ekahan_sum(&instance, 0u, 256u), + -2.1558138246206565e+31, + "f32.kahan_sum(0u, 256u)" ); assertEqualF32( - floatexprs63_f32X2Eno_fold_neg_sub(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_neg_sub(0.0, -0.0)" - ); - assertEqualF32( - floatexprs63_f32X2Eno_fold_neg_sub(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_neg_sub(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs63_f32X2Eno_fold_neg_sub(&instance, 0.0, 0.0), - -0.0, - "f32.no_fold_neg_sub(0.0, 0.0)" - ); - assertEqualF64( - floatexprs63_f64X2Eno_fold_neg_sub(&instance, -0.0, -0.0), - -0.0, - "f64.no_fold_neg_sub(-0.0, -0.0)" - ); - assertEqualF64( - floatexprs63_f64X2Eno_fold_neg_sub(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_neg_sub(0.0, -0.0)" - ); - assertEqualF64( - floatexprs63_f64X2Eno_fold_neg_sub(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_neg_sub(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs63_f64X2Eno_fold_neg_sub(&instance, 0.0, 0.0), - -0.0, - "f64.no_fold_neg_sub(0.0, 0.0)" + floatexprs63_f32X2Eplain_sum(&instance, 0u, 256u), + -1.6487539472071106e+31, + "f32.plain_sum(0u, 256u)" ); } diff --git a/tests/gen/assert_float_exprs.64.c b/tests/gen/assert_float_exprs.64.c index 7750b49..625f707 100644 --- a/tests/gen/assert_float_exprs.64.c +++ b/tests/gen/assert_float_exprs.64.c @@ -8,44 +8,14 @@ void test() { floatexprs64Instance instance; floatexprs64Instantiate(&instance, resolveTestImports); printStart("float_exprs.64.wasm"); - assertEqualF32( - floatexprs64_f32X2Eno_fold_neg_add(&instance, -0.0, -0.0), - 0.0, - "f32.no_fold_neg_add(-0.0, -0.0)" - ); - assertEqualF32( - floatexprs64_f32X2Eno_fold_neg_add(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_neg_add(0.0, -0.0)" - ); - assertEqualF32( - floatexprs64_f32X2Eno_fold_neg_add(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_neg_add(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs64_f32X2Eno_fold_neg_add(&instance, 0.0, 0.0), - -0.0, - "f32.no_fold_neg_add(0.0, 0.0)" - ); - assertEqualF64( - floatexprs64_f64X2Eno_fold_neg_add(&instance, -0.0, -0.0), - 0.0, - "f64.no_fold_neg_add(-0.0, -0.0)" - ); - assertEqualF64( - floatexprs64_f64X2Eno_fold_neg_add(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_neg_add(0.0, -0.0)" - ); assertEqualF64( - floatexprs64_f64X2Eno_fold_neg_add(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_neg_add(-0.0, 0.0)" + floatexprs64_f64X2Ekahan_sum(&instance, 0u, 256u), + 4.996401743142033e+300, + "f64.kahan_sum(0u, 256u)" ); assertEqualF64( - floatexprs64_f64X2Eno_fold_neg_add(&instance, 0.0, 0.0), - -0.0, - "f64.no_fold_neg_add(0.0, 0.0)" + floatexprs64_f64X2Eplain_sum(&instance, 0u, 256u), + 4.9964017432979576e+300, + "f64.plain_sum(0u, 256u)" ); } diff --git a/tests/gen/assert_float_exprs.65.c b/tests/gen/assert_float_exprs.65.c index 30fbb1f..02fb0c3 100644 --- a/tests/gen/assert_float_exprs.65.c +++ b/tests/gen/assert_float_exprs.65.c @@ -9,43 +9,43 @@ void test() { floatexprs65Instantiate(&instance, resolveTestImports); printStart("float_exprs.65.wasm"); assertEqualF32( - floatexprs65_f32X2Eno_fold_add_neg_neg(&instance, -0.0, -0.0), - 0.0, - "f32.no_fold_add_neg_neg(-0.0, -0.0)" + floatexprs65_f32X2Eno_fold_neg_sub(&instance, -0.0, -0.0), + -0.0, + "f32.no_fold_neg_sub(-0.0, -0.0)" ); assertEqualF32( - floatexprs65_f32X2Eno_fold_add_neg_neg(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_add_neg_neg(0.0, -0.0)" + floatexprs65_f32X2Eno_fold_neg_sub(&instance, 0.0, -0.0), + -0.0, + "f32.no_fold_neg_sub(0.0, -0.0)" ); assertEqualF32( - floatexprs65_f32X2Eno_fold_add_neg_neg(&instance, -0.0, 0.0), + floatexprs65_f32X2Eno_fold_neg_sub(&instance, -0.0, 0.0), 0.0, - "f32.no_fold_add_neg_neg(-0.0, 0.0)" + "f32.no_fold_neg_sub(-0.0, 0.0)" ); assertEqualF32( - floatexprs65_f32X2Eno_fold_add_neg_neg(&instance, 0.0, 0.0), + floatexprs65_f32X2Eno_fold_neg_sub(&instance, 0.0, 0.0), -0.0, - "f32.no_fold_add_neg_neg(0.0, 0.0)" + "f32.no_fold_neg_sub(0.0, 0.0)" ); assertEqualF64( - floatexprs65_f64X2Eno_fold_add_neg_neg(&instance, -0.0, -0.0), - 0.0, - "f64.no_fold_add_neg_neg(-0.0, -0.0)" + floatexprs65_f64X2Eno_fold_neg_sub(&instance, -0.0, -0.0), + -0.0, + "f64.no_fold_neg_sub(-0.0, -0.0)" ); assertEqualF64( - floatexprs65_f64X2Eno_fold_add_neg_neg(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_add_neg_neg(0.0, -0.0)" + floatexprs65_f64X2Eno_fold_neg_sub(&instance, 0.0, -0.0), + -0.0, + "f64.no_fold_neg_sub(0.0, -0.0)" ); assertEqualF64( - floatexprs65_f64X2Eno_fold_add_neg_neg(&instance, -0.0, 0.0), + floatexprs65_f64X2Eno_fold_neg_sub(&instance, -0.0, 0.0), 0.0, - "f64.no_fold_add_neg_neg(-0.0, 0.0)" + "f64.no_fold_neg_sub(-0.0, 0.0)" ); assertEqualF64( - floatexprs65_f64X2Eno_fold_add_neg_neg(&instance, 0.0, 0.0), + floatexprs65_f64X2Eno_fold_neg_sub(&instance, 0.0, 0.0), -0.0, - "f64.no_fold_add_neg_neg(0.0, 0.0)" + "f64.no_fold_neg_sub(0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.66.c b/tests/gen/assert_float_exprs.66.c index eaa04a8..51cbbc1 100644 --- a/tests/gen/assert_float_exprs.66.c +++ b/tests/gen/assert_float_exprs.66.c @@ -9,23 +9,43 @@ void test() { floatexprs66Instantiate(&instance, resolveTestImports); printStart("float_exprs.66.wasm"); assertEqualF32( - floatexprs66_f32X2Eno_fold_add_neg(&instance, 0.0), + floatexprs66_f32X2Eno_fold_neg_add(&instance, -0.0, -0.0), 0.0, - "f32.no_fold_add_neg(0.0)" + "f32.no_fold_neg_add(-0.0, -0.0)" ); assertEqualF32( - floatexprs66_f32X2Eno_fold_add_neg(&instance, -0.0), - 0.0, - "f32.no_fold_add_neg(-0.0)" + floatexprs66_f32X2Eno_fold_neg_add(&instance, 0.0, -0.0), + -0.0, + "f32.no_fold_neg_add(0.0, -0.0)" + ); + assertEqualF32( + floatexprs66_f32X2Eno_fold_neg_add(&instance, -0.0, 0.0), + -0.0, + "f32.no_fold_neg_add(-0.0, 0.0)" + ); + assertEqualF32( + floatexprs66_f32X2Eno_fold_neg_add(&instance, 0.0, 0.0), + -0.0, + "f32.no_fold_neg_add(0.0, 0.0)" ); assertEqualF64( - floatexprs66_f64X2Eno_fold_add_neg(&instance, 0.0), + floatexprs66_f64X2Eno_fold_neg_add(&instance, -0.0, -0.0), 0.0, - "f64.no_fold_add_neg(0.0)" + "f64.no_fold_neg_add(-0.0, -0.0)" ); assertEqualF64( - floatexprs66_f64X2Eno_fold_add_neg(&instance, -0.0), - 0.0, - "f64.no_fold_add_neg(-0.0)" + floatexprs66_f64X2Eno_fold_neg_add(&instance, 0.0, -0.0), + -0.0, + "f64.no_fold_neg_add(0.0, -0.0)" + ); + assertEqualF64( + floatexprs66_f64X2Eno_fold_neg_add(&instance, -0.0, 0.0), + -0.0, + "f64.no_fold_neg_add(-0.0, 0.0)" + ); + assertEqualF64( + floatexprs66_f64X2Eno_fold_neg_add(&instance, 0.0, 0.0), + -0.0, + "f64.no_fold_neg_add(0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.67.c b/tests/gen/assert_float_exprs.67.c index 23d27c7..bf442b1 100644 --- a/tests/gen/assert_float_exprs.67.c +++ b/tests/gen/assert_float_exprs.67.c @@ -9,53 +9,43 @@ void test() { floatexprs67Instantiate(&instance, resolveTestImports); printStart("float_exprs.67.wasm"); assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, -8.555137345589493e+29), - -5.133082709585151e+30, - "f32.no_fold_6x_via_add(-8.555137345589493e+29)" + floatexprs67_f32X2Eno_fold_add_neg_neg(&instance, -0.0, -0.0), + 0.0, + "f32.no_fold_add_neg_neg(-0.0, -0.0)" ); assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, -1.2095059945729172e-23), - -7.257036282981865e-23, - "f32.no_fold_6x_via_add(-1.2095059945729172e-23)" + floatexprs67_f32X2Eno_fold_add_neg_neg(&instance, 0.0, -0.0), + 0.0, + "f32.no_fold_add_neg_neg(0.0, -0.0)" ); assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, 6.642689238252199e-24), - 3.9856133851791384e-23, - "f32.no_fold_6x_via_add(6.642689238252199e-24)" + floatexprs67_f32X2Eno_fold_add_neg_neg(&instance, -0.0, 0.0), + 0.0, + "f32.no_fold_add_neg_neg(-0.0, 0.0)" ); assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, -6.147345965601403e-10), - -3.688407357316237e-09, - "f32.no_fold_6x_via_add(-6.147345965601403e-10)" - ); - assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, -1.209858100766292e+24), - -7.259148316367375e+24, - "f32.no_fold_6x_via_add(-1.209858100766292e+24)" - ); - assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, -3.517044906027714e+20), - -2.1102269436166286e+21, - "f64.no_fold_6x_via_add(-3.517044906027714e+20)" + floatexprs67_f32X2Eno_fold_add_neg_neg(&instance, 0.0, 0.0), + -0.0, + "f32.no_fold_add_neg_neg(0.0, 0.0)" ); assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, -1.4824294109868734e-161), - -8.894576465921239e-161, - "f64.no_fold_6x_via_add(-1.4824294109868734e-161)" + floatexprs67_f64X2Eno_fold_add_neg_neg(&instance, -0.0, -0.0), + 0.0, + "f64.no_fold_add_neg_neg(-0.0, -0.0)" ); assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, -7.484567838781003e+81), - -4.4907407032686014e+82, - "f64.no_fold_6x_via_add(-7.484567838781003e+81)" + floatexprs67_f64X2Eno_fold_add_neg_neg(&instance, 0.0, -0.0), + 0.0, + "f64.no_fold_add_neg_neg(0.0, -0.0)" ); assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, 1.7277868192936067e+226), - 1.0366720915761641e+227, - "f64.no_fold_6x_via_add(1.7277868192936067e+226)" + floatexprs67_f64X2Eno_fold_add_neg_neg(&instance, -0.0, 0.0), + 0.0, + "f64.no_fold_add_neg_neg(-0.0, 0.0)" ); assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, -4.311639752519561e+70), - -2.5869838515117364e+71, - "f64.no_fold_6x_via_add(-4.311639752519561e+70)" + floatexprs67_f64X2Eno_fold_add_neg_neg(&instance, 0.0, 0.0), + -0.0, + "f64.no_fold_add_neg_neg(0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.68.c b/tests/gen/assert_float_exprs.68.c index 1d6b389..b2c686c 100644 --- a/tests/gen/assert_float_exprs.68.c +++ b/tests/gen/assert_float_exprs.68.c @@ -9,53 +9,23 @@ void test() { floatexprs68Instantiate(&instance, resolveTestImports); printStart("float_exprs.68.wasm"); assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, -5.938475291688351e+23, -3.0265671739471145e-05, -1584.8681640625), - -1.2380308618298272e+25, - "f32.no_fold_div_div(-5.938475291688351e+23, -3.0265671739471145e-05, -1584.8681640625)" + floatexprs68_f32X2Eno_fold_add_neg(&instance, 0.0), + 0.0, + "f32.no_fold_add_neg(0.0)" ); assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, 1.5438961616455177e-21, 2.5334292803745544e+33, -2.684478285682781e-34), - -0.0, - "f32.no_fold_div_div(1.5438961616455177e-21, 2.5334292803745544e+33, -2.684478285682781e-34)" - ); - assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, 13417423306752.0, 2.933920464447575e-32, 7.638637444001918e+31), - INFINITY, - "f32.no_fold_div_div(13417423306752.0, 2.933920464447575e-32, 7.638637444001918e+31)" - ); - assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, -0.00010776529234135523, -3.422094290809958e+37, -1.656232388649176e-13), - -1.9011326935735888e-29, - "f32.no_fold_div_div(-0.00010776529234135523, -3.422094290809958e+37, -1.656232388649176e-13)" - ); - assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, 130582499557376.0, 9.624534661044634e+16, -4.146154510069999e+37), - -3.272312173891313e-41, - "f32.no_fold_div_div(130582499557376.0, 9.624534661044634e+16, -4.146154510069999e+37)" - ); - assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, 4.7776287467101434e+101, 1.0278672042040401e+176, -7.18999894988884e-236), - -6.464673011878799e+160, - "f64.no_fold_div_div(4.7776287467101434e+101, 1.0278672042040401e+176, -7.18999894988884e-236)" - ); - assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, -2.1790236783875714e+238, 2.8324436844616576e-09, 1.861107682598687e+95), - -4.133606807992067e+151, - "f64.no_fold_div_div(-2.1790236783875714e+238, 2.8324436844616576e-09, 1.861107682598687e+95)" - ); - assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, -7.287619347826683, -1.3467607316739855e+265, 2.462719007013688e+51), - 2.19725454e-316, - "f64.no_fold_div_div(-7.287619347826683, -1.3467607316739855e+265, 2.462719007013688e+51)" + floatexprs68_f32X2Eno_fold_add_neg(&instance, -0.0), + 0.0, + "f32.no_fold_add_neg(-0.0)" ); assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, -2.865523978629633e+248, 1.0211980370639414e-247, 2.876458648332401e+289), - -INFINITY, - "f64.no_fold_div_div(-2.865523978629633e+248, 1.0211980370639414e-247, 2.876458648332401e+289)" + floatexprs68_f64X2Eno_fold_add_neg(&instance, 0.0), + 0.0, + "f64.no_fold_add_neg(0.0)" ); assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, -9.525735602663874e-268, 5.0233948816631796e-180, -2.8304570228221077e-42), - 6.699534674970116e-47, - "f64.no_fold_div_div(-9.525735602663874e-268, 5.0233948816631796e-180, -2.8304570228221077e-42)" + floatexprs68_f64X2Eno_fold_add_neg(&instance, -0.0), + 0.0, + "f64.no_fold_add_neg(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.69.c b/tests/gen/assert_float_exprs.69.c index 80e4483..c544c46 100644 --- a/tests/gen/assert_float_exprs.69.c +++ b/tests/gen/assert_float_exprs.69.c @@ -9,53 +9,53 @@ void test() { floatexprs69Instantiate(&instance, resolveTestImports); printStart("float_exprs.69.wasm"); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, -2.723473290390395e-33, 3.8978429106441753e-28, 4.8471230913214525e-27, -25.35777473449707), - 1.3355854774737518e-33, - "f32.no_fold_mul_divs(-2.723473290390395e-33, 3.8978429106441753e-28, 4.8471230913214525e-27, -25.35777473449707)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, -8.555137345589493e+29), + -5.133082709585151e+30, + "f32.no_fold_6x_via_add(-8.555137345589493e+29)" ); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, -5.372844131686042e+30, 38340912.0, 1.4973162251408212e-05, 0.19213825464248657), - -1.0920474831396798e+19, - "f32.no_fold_mul_divs(-5.372844131686042e+30, 38340912.0, 1.4973162251408212e-05, 0.19213825464248657)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, -1.2095059945729172e-23), + -7.257036282981865e-23, + "f32.no_fold_6x_via_add(-1.2095059945729172e-23)" ); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, -16085042176.0, -1092920213504.0, -869606016.0, -1201.2060546875), - 10654.638671875, - "f32.no_fold_mul_divs(-16085042176.0, -1092920213504.0, -869606016.0, -1201.2060546875)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, 6.642689238252199e-24), + 3.9856133851791384e-23, + "f32.no_fold_6x_via_add(6.642689238252199e-24)" ); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, -1.2712231404391021e+33, 1.0768114178105748e-10, 1.857627103163395e-05, 4.9268619715816126e+23), - -INFINITY, - "f32.no_fold_mul_divs(-1.2712231404391021e+33, 1.0768114178105748e-10, 1.857627103163395e-05, 4.9268619715816126e+23)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, -6.147345965601403e-10), + -3.688407357316237e-09, + "f32.no_fold_6x_via_add(-6.147345965601403e-10)" ); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, 1.3783863765364776e-16, -6.504628450864499e-20, 6.816768371365373e-28, 2.2892627030146606e-11), - -6.310029538811324e-14, - "f32.no_fold_mul_divs(1.3783863765364776e-16, -6.504628450864499e-20, 6.816768371365373e-28, 2.2892627030146606e-11)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, -1.209858100766292e+24), + -7.259148316367375e+24, + "f32.no_fold_6x_via_add(-1.209858100766292e+24)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, -3.466499805233369e-247, -4.045567512248635e-140, -6.462341070607592e+164, 1.0045589533354074e+56), - -55.12215321310017, - "f64.no_fold_mul_divs(-3.466499805233369e-247, -4.045567512248635e-140, -6.462341070607592e+164, 1.0045589533354074e+56)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, -3.517044906027714e+20), + -2.1102269436166286e+21, + "f64.no_fold_6x_via_add(-3.517044906027714e+20)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, -5.054883907636325e+34, 2.2223781649976275e-277, -1.5029790371100852e+109, -6.994123759538121e+140), - -INFINITY, - "f64.no_fold_mul_divs(-5.054883907636325e+34, 2.2223781649976275e-277, -1.5029790371100852e+109, -6.994123759538121e+140)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, -1.4824294109868734e-161), + -8.894576465921239e-161, + "f64.no_fold_6x_via_add(-1.4824294109868734e-161)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, -8.361116536344947e+92, -1.0029528876067567e+58, -1.2867801766038772e-42, -4.2230277746883753e+220), - 2.540178100556387e-228, - "f64.no_fold_mul_divs(-8.361116536344947e+92, -1.0029528876067567e+58, -1.2867801766038772e-42, -4.2230277746883753e+220)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, -7.484567838781003e+81), + -4.4907407032686014e+82, + "f64.no_fold_6x_via_add(-7.484567838781003e+81)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, -1.2020032116411193e+39, -4.667409771338769e-105, 1.0888652376540085e-288, 1.8334948666517216e+67), - 0.0, - "f64.no_fold_mul_divs(-1.2020032116411193e+39, -4.667409771338769e-105, 1.0888652376540085e-288, 1.8334948666517216e+67)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, 1.7277868192936067e+226), + 1.0366720915761641e+227, + "f64.no_fold_6x_via_add(1.7277868192936067e+226)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, 6.331839568840419e-06, 5.544474241905778e-84, 2.7822472480359097e-187, -1.4419321081893022e+106), - -2.2035374770746518e-215, - "f64.no_fold_mul_divs(6.331839568840419e-06, 5.544474241905778e-84, 2.7822472480359097e-187, -1.4419321081893022e+106)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, -4.311639752519561e+70), + -2.5869838515117364e+71, + "f64.no_fold_6x_via_add(-4.311639752519561e+70)" ); } diff --git a/tests/gen/assert_float_exprs.70.c b/tests/gen/assert_float_exprs.70.c index 3b80608..8a288a0 100644 --- a/tests/gen/assert_float_exprs.70.c +++ b/tests/gen/assert_float_exprs.70.c @@ -9,53 +9,53 @@ void test() { floatexprs70Instantiate(&instance, resolveTestImports); printStart("float_exprs.70.wasm"); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, 377.368896484375, -0.04011818394064903, -1.3629298560546316e+38), - -2.768512148377355e-36, - "f32.no_fold_add_divs(377.368896484375, -0.04011818394064903, -1.3629298560546316e+38)" + floatexprs70_f32X2Eno_fold_div_div(&instance, -5.938475291688351e+23, -3.0265671739471145e-05, -1584.8681640625), + -1.2380308618298272e+25, + "f32.no_fold_div_div(-5.938475291688351e+23, -3.0265671739471145e-05, -1584.8681640625)" ); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, -1.8234023041237435e-19, -3.3970288113369237e-15, -170996707360768.0), - 1.9867115411157125e-29, - "f32.no_fold_add_divs(-1.8234023041237435e-19, -3.3970288113369237e-15, -170996707360768.0)" + floatexprs70_f32X2Eno_fold_div_div(&instance, 1.5438961616455177e-21, 2.5334292803745544e+33, -2.684478285682781e-34), + -0.0, + "f32.no_fold_div_div(1.5438961616455177e-21, 2.5334292803745544e+33, -2.684478285682781e-34)" ); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, -1.967263835557856e-14, 6.414098702699398e-20, -541989070176256.0), - 3.6296996567176507e-29, - "f32.no_fold_add_divs(-1.967263835557856e-14, 6.414098702699398e-20, -541989070176256.0)" + floatexprs70_f32X2Eno_fold_div_div(&instance, 13417423306752.0, 2.933920464447575e-32, 7.638637444001918e+31), + INFINITY, + "f32.no_fold_div_div(13417423306752.0, 2.933920464447575e-32, 7.638637444001918e+31)" ); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, -4.038505822193515e-31, 3.848228081428171e-30, -3.4523719791292376e+26), - 0.0, - "f32.no_fold_add_divs(-4.038505822193515e-31, 3.848228081428171e-30, -3.4523719791292376e+26)" + floatexprs70_f32X2Eno_fold_div_div(&instance, -0.00010776529234135523, -3.422094290809958e+37, -1.656232388649176e-13), + -1.9011326935735888e-29, + "f32.no_fold_div_div(-0.00010776529234135523, -3.422094290809958e+37, -1.656232388649176e-13)" ); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, 0.0010934415040537715, 0.2070312350988388, 1.3509783969902986e-37), - 1.540547727687837e+36, - "f32.no_fold_add_divs(0.0010934415040537715, 0.2070312350988388, 1.3509783969902986e-37)" + floatexprs70_f32X2Eno_fold_div_div(&instance, 130582499557376.0, 9.624534661044634e+16, -4.146154510069999e+37), + -3.272312173891313e-41, + "f32.no_fold_div_div(130582499557376.0, 9.624534661044634e+16, -4.146154510069999e+37)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, -4.91701943214376e+129, 6.813215632201902e+130, 2.6125410100237784e+274), - 2.4196801752520584e-144, - "f64.no_fold_add_divs(-4.91701943214376e+129, 6.813215632201902e+130, 2.6125410100237784e+274)" + floatexprs70_f64X2Eno_fold_div_div(&instance, 4.7776287467101434e+101, 1.0278672042040401e+176, -7.18999894988884e-236), + -6.464673011878799e+160, + "f64.no_fold_div_div(4.7776287467101434e+101, 1.0278672042040401e+176, -7.18999894988884e-236)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, -1.020646795322455e+16, 63.422616671746226, -1.6024747869814892e-288), - 6.369190976445851e+303, - "f64.no_fold_add_divs(-1.020646795322455e+16, 63.422616671746226, -1.6024747869814892e-288)" + floatexprs70_f64X2Eno_fold_div_div(&instance, -2.1790236783875714e+238, 2.8324436844616576e-09, 1.861107682598687e+95), + -4.133606807992067e+151, + "f64.no_fold_div_div(-2.1790236783875714e+238, 2.8324436844616576e-09, 1.861107682598687e+95)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, -1.5270569633109837e-291, 2.5755503329232514e-294, 5.882693916421492e+151), - 0.0, - "f64.no_fold_add_divs(-1.5270569633109837e-291, 2.5755503329232514e-294, 5.882693916421492e+151)" + floatexprs70_f64X2Eno_fold_div_div(&instance, -7.287619347826683, -1.3467607316739855e+265, 2.462719007013688e+51), + 2.19725454e-316, + "f64.no_fold_div_div(-7.287619347826683, -1.3467607316739855e+265, 2.462719007013688e+51)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, 2.666796487439464e+94, -2.1315692524936578e+99, 1.2377004518680012e-38), - -1.7221796932462534e+137, - "f64.no_fold_add_divs(2.666796487439464e+94, -2.1315692524936578e+99, 1.2377004518680012e-38)" + floatexprs70_f64X2Eno_fold_div_div(&instance, -2.865523978629633e+248, 1.0211980370639414e-247, 2.876458648332401e+289), + -INFINITY, + "f64.no_fold_div_div(-2.865523978629633e+248, 1.0211980370639414e-247, 2.876458648332401e+289)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, -1.2952888377288216e-219, 5.808769259900048e-228, 1.6745741699443756e-21), - -7.735034106987796e-199, - "f64.no_fold_add_divs(-1.2952888377288216e-219, 5.808769259900048e-228, 1.6745741699443756e-21)" + floatexprs70_f64X2Eno_fold_div_div(&instance, -9.525735602663874e-268, 5.0233948816631796e-180, -2.8304570228221077e-42), + 6.699534674970116e-47, + "f64.no_fold_div_div(-9.525735602663874e-268, 5.0233948816631796e-180, -2.8304570228221077e-42)" ); } diff --git a/tests/gen/assert_float_exprs.71.c b/tests/gen/assert_float_exprs.71.c index d8a008a..a2e1f2e 100644 --- a/tests/gen/assert_float_exprs.71.c +++ b/tests/gen/assert_float_exprs.71.c @@ -9,53 +9,53 @@ void test() { floatexprs71Instantiate(&instance, resolveTestImports); printStart("float_exprs.71.wasm"); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, -1.8460000706651253e-20), - 1.8460010400174057e-20, - "f32.no_fold_sqrt_square(-1.8460000706651253e-20)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, -2.723473290390395e-33, 3.8978429106441753e-28, 4.8471230913214525e-27, -25.35777473449707), + 1.3355854774737518e-33, + "f32.no_fold_mul_divs(-2.723473290390395e-33, 3.8978429106441753e-28, 4.8471230913214525e-27, -25.35777473449707)" ); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, -1.7907473239008437e-22), - 1.7952678124321221e-22, - "f32.no_fold_sqrt_square(-1.7907473239008437e-22)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, -5.372844131686042e+30, 38340912.0, 1.4973162251408212e-05, 0.19213825464248657), + -1.0920474831396798e+19, + "f32.no_fold_mul_divs(-5.372844131686042e+30, 38340912.0, 1.4973162251408212e-05, 0.19213825464248657)" ); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, -7.912078484555785e-22), - 7.91442007615797e-22, - "f32.no_fold_sqrt_square(-7.912078484555785e-22)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, -16085042176.0, -1092920213504.0, -869606016.0, -1201.2060546875), + 10654.638671875, + "f32.no_fold_mul_divs(-16085042176.0, -1092920213504.0, -869606016.0, -1201.2060546875)" ); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, 1.8012937732222048e-26), - 0.0, - "f32.no_fold_sqrt_square(1.8012937732222048e-26)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, -1.2712231404391021e+33, 1.0768114178105748e-10, 1.857627103163395e-05, 4.9268619715816126e+23), + -INFINITY, + "f32.no_fold_mul_divs(-1.2712231404391021e+33, 1.0768114178105748e-10, 1.857627103163395e-05, 4.9268619715816126e+23)" ); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, 6.1050196817521095e+32), - INFINITY, - "f32.no_fold_sqrt_square(6.1050196817521095e+32)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, 1.3783863765364776e-16, -6.504628450864499e-20, 6.816768371365373e-28, 2.2892627030146606e-11), + -6.310029538811324e-14, + "f32.no_fold_mul_divs(1.3783863765364776e-16, -6.504628450864499e-20, 6.816768371365373e-28, 2.2892627030146606e-11)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, 6.209297167747496e-160), - 6.209299542179727e-160, - "f64.no_fold_sqrt_square(6.209297167747496e-160)" + floatexprs71_f64X2Eno_fold_mul_divs(&instance, -3.466499805233369e-247, -4.045567512248635e-140, -6.462341070607592e+164, 1.0045589533354074e+56), + -55.12215321310017, + "f64.no_fold_mul_divs(-3.466499805233369e-247, -4.045567512248635e-140, -6.462341070607592e+164, 1.0045589533354074e+56)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, -2.4211175303738945e-155), - 2.4211175303738937e-155, - "f64.no_fold_sqrt_square(-2.4211175303738945e-155)" + floatexprs71_f64X2Eno_fold_mul_divs(&instance, -5.054883907636325e+34, 2.2223781649976275e-277, -1.5029790371100852e+109, -6.994123759538121e+140), + -INFINITY, + "f64.no_fold_mul_divs(-5.054883907636325e+34, 2.2223781649976275e-277, -1.5029790371100852e+109, -6.994123759538121e+140)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, -1.6460687611875645e-157), - 1.6460687611532367e-157, - "f64.no_fold_sqrt_square(-1.6460687611875645e-157)" + floatexprs71_f64X2Eno_fold_mul_divs(&instance, -8.361116536344947e+92, -1.0029528876067567e+58, -1.2867801766038772e-42, -4.2230277746883753e+220), + 2.540178100556387e-228, + "f64.no_fold_mul_divs(-8.361116536344947e+92, -1.0029528876067567e+58, -1.2867801766038772e-42, -4.2230277746883753e+220)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, -3.797811613378828e-186), + floatexprs71_f64X2Eno_fold_mul_divs(&instance, -1.2020032116411193e+39, -4.667409771338769e-105, 1.0888652376540085e-288, 1.8334948666517216e+67), 0.0, - "f64.no_fold_sqrt_square(-3.797811613378828e-186)" + "f64.no_fold_mul_divs(-1.2020032116411193e+39, -4.667409771338769e-105, 1.0888652376540085e-288, 1.8334948666517216e+67)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, 8.158084284605592e+257), - INFINITY, - "f64.no_fold_sqrt_square(8.158084284605592e+257)" + floatexprs71_f64X2Eno_fold_mul_divs(&instance, 6.331839568840419e-06, 5.544474241905778e-84, 2.7822472480359097e-187, -1.4419321081893022e+106), + -2.2035374770746518e-215, + "f64.no_fold_mul_divs(6.331839568840419e-06, 5.544474241905778e-84, 2.7822472480359097e-187, -1.4419321081893022e+106)" ); } diff --git a/tests/gen/assert_float_exprs.72.c b/tests/gen/assert_float_exprs.72.c index 0bacea2..db3bbe4 100644 --- a/tests/gen/assert_float_exprs.72.c +++ b/tests/gen/assert_float_exprs.72.c @@ -9,43 +9,53 @@ void test() { floatexprs72Instantiate(&instance, resolveTestImports); printStart("float_exprs.72.wasm"); assertEqualF32( - floatexprs72_f32X2Eno_fold_mul_sqrts(&instance, 2.536590811126416e-28, 4.132067465967282e-10), - 3.237493152183345e-19, - "f32.no_fold_mul_sqrts(2.536590811126416e-28, 4.132067465967282e-10)" + floatexprs72_f32X2Eno_fold_add_divs(&instance, 377.368896484375, -0.04011818394064903, -1.3629298560546316e+38), + -2.768512148377355e-36, + "f32.no_fold_add_divs(377.368896484375, -0.04011818394064903, -1.3629298560546316e+38)" ); assertEqualF32( - floatexprs72_f32X2Eno_fold_mul_sqrts(&instance, 4.2144832231674335e-27, 97.24911499023438), - 6.401990482879372e-13, - "f32.no_fold_mul_sqrts(4.2144832231674335e-27, 97.24911499023438)" + floatexprs72_f32X2Eno_fold_add_divs(&instance, -1.8234023041237435e-19, -3.3970288113369237e-15, -170996707360768.0), + 1.9867115411157125e-29, + "f32.no_fold_add_divs(-1.8234023041237435e-19, -3.3970288113369237e-15, -170996707360768.0)" ); assertEqualF32( - floatexprs72_f32X2Eno_fold_mul_sqrts(&instance, 3.7240763422782964e+30, 0.0029449081048369408), - 104723751370752.0, - "f32.no_fold_mul_sqrts(3.7240763422782964e+30, 0.0029449081048369408)" + floatexprs72_f32X2Eno_fold_add_divs(&instance, -1.967263835557856e-14, 6.414098702699398e-20, -541989070176256.0), + 3.6296996567176507e-29, + "f32.no_fold_add_divs(-1.967263835557856e-14, 6.414098702699398e-20, -541989070176256.0)" ); assertEqualF32( - floatexprs72_f32X2Eno_fold_mul_sqrts(&instance, 1.8660559344485864e-17, 0.002111261012032628), - 1.9848754584383954e-10, - "f32.no_fold_mul_sqrts(1.8660559344485864e-17, 0.002111261012032628)" + floatexprs72_f32X2Eno_fold_add_divs(&instance, -4.038505822193515e-31, 3.848228081428171e-30, -3.4523719791292376e+26), + 0.0, + "f32.no_fold_add_divs(-4.038505822193515e-31, 3.848228081428171e-30, -3.4523719791292376e+26)" + ); + assertEqualF32( + floatexprs72_f32X2Eno_fold_add_divs(&instance, 0.0010934415040537715, 0.2070312350988388, 1.3509783969902986e-37), + 1.540547727687837e+36, + "f32.no_fold_add_divs(0.0010934415040537715, 0.2070312350988388, 1.3509783969902986e-37)" + ); + assertEqualF64( + floatexprs72_f64X2Eno_fold_add_divs(&instance, -4.91701943214376e+129, 6.813215632201902e+130, 2.6125410100237784e+274), + 2.4196801752520584e-144, + "f64.no_fold_add_divs(-4.91701943214376e+129, 6.813215632201902e+130, 2.6125410100237784e+274)" ); assertEqualF64( - floatexprs72_f64X2Eno_fold_mul_sqrts(&instance, 3.7082569269527534e-194, 4.7183002857015043e-122), - 4.1829020688865954e-158, - "f64.no_fold_mul_sqrts(3.7082569269527534e-194, 4.7183002857015043e-122)" + floatexprs72_f64X2Eno_fold_add_divs(&instance, -1.020646795322455e+16, 63.422616671746226, -1.6024747869814892e-288), + 6.369190976445851e+303, + "f64.no_fold_add_divs(-1.020646795322455e+16, 63.422616671746226, -1.6024747869814892e-288)" ); assertEqualF64( - floatexprs72_f64X2Eno_fold_mul_sqrts(&instance, 2.329359505918655e-27, 2.0743399642806364e-275), - 2.1981545701574452e-151, - "f64.no_fold_mul_sqrts(2.329359505918655e-27, 2.0743399642806364e-275)" + floatexprs72_f64X2Eno_fold_add_divs(&instance, -1.5270569633109837e-291, 2.5755503329232514e-294, 5.882693916421492e+151), + 0.0, + "f64.no_fold_add_divs(-1.5270569633109837e-291, 2.5755503329232514e-294, 5.882693916421492e+151)" ); assertEqualF64( - floatexprs72_f64X2Eno_fold_mul_sqrts(&instance, 1.0541899336289437e-109, 5.98123819872803e-173), - 2.511047809129887e-141, - "f64.no_fold_mul_sqrts(1.0541899336289437e-109, 5.98123819872803e-173)" + floatexprs72_f64X2Eno_fold_add_divs(&instance, 2.666796487439464e+94, -2.1315692524936578e+99, 1.2377004518680012e-38), + -1.7221796932462534e+137, + "f64.no_fold_add_divs(2.666796487439464e+94, -2.1315692524936578e+99, 1.2377004518680012e-38)" ); assertEqualF64( - floatexprs72_f64X2Eno_fold_mul_sqrts(&instance, 25589482.717358638, 3.913891207119902e+154), - 1.0007719590506955e+81, - "f64.no_fold_mul_sqrts(25589482.717358638, 3.913891207119902e+154)" + floatexprs72_f64X2Eno_fold_add_divs(&instance, -1.2952888377288216e-219, 5.808769259900048e-228, 1.6745741699443756e-21), + -7.735034106987796e-199, + "f64.no_fold_add_divs(-1.2952888377288216e-219, 5.808769259900048e-228, 1.6745741699443756e-21)" ); } diff --git a/tests/gen/assert_float_exprs.73.c b/tests/gen/assert_float_exprs.73.c index e7b233c..9e4257e 100644 --- a/tests/gen/assert_float_exprs.73.c +++ b/tests/gen/assert_float_exprs.73.c @@ -9,43 +9,53 @@ void test() { floatexprs73Instantiate(&instance, resolveTestImports); printStart("float_exprs.73.wasm"); assertEqualF32( - floatexprs73_f32X2Eno_fold_div_sqrts(&instance, 7407384064.0, 209778928.0), - 5.942258358001709, - "f32.no_fold_div_sqrts(7407384064.0, 209778928.0)" + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, -1.8460000706651253e-20), + 1.8460010400174057e-20, + "f32.no_fold_sqrt_square(-1.8460000706651253e-20)" ); assertEqualF32( - floatexprs73_f32X2Eno_fold_div_sqrts(&instance, 1.3764125694787306e-36, 54692.8984375), - 5.016592728986257e-21, - "f32.no_fold_div_sqrts(1.3764125694787306e-36, 54692.8984375)" + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, -1.7907473239008437e-22), + 1.7952678124321221e-22, + "f32.no_fold_sqrt_square(-1.7907473239008437e-22)" ); assertEqualF32( - floatexprs73_f32X2Eno_fold_div_sqrts(&instance, 9.792889648106701e+17, 1.2643551761115646e-09), - 27830490497024.0, - "f32.no_fold_div_sqrts(9.792889648106701e+17, 1.2643551761115646e-09)" + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, -7.912078484555785e-22), + 7.91442007615797e-22, + "f32.no_fold_sqrt_square(-7.912078484555785e-22)" ); assertEqualF32( - floatexprs73_f32X2Eno_fold_div_sqrts(&instance, 2.9141283262714446e-34, 1.7928174342978603e-31), - 0.04031682014465332, - "f32.no_fold_div_sqrts(2.9141283262714446e-34, 1.7928174342978603e-31)" + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, 1.8012937732222048e-26), + 0.0, + "f32.no_fold_sqrt_square(1.8012937732222048e-26)" + ); + assertEqualF32( + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, 6.1050196817521095e+32), + INFINITY, + "f32.no_fold_sqrt_square(6.1050196817521095e+32)" + ); + assertEqualF64( + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, 6.209297167747496e-160), + 6.209299542179727e-160, + "f64.no_fold_sqrt_square(6.209297167747496e-160)" ); assertEqualF64( - floatexprs73_f64X2Eno_fold_div_sqrts(&instance, 3.3818852462305824e-177, 7.655783976315048e+162), - 2.1017671425665687e-170, - "f64.no_fold_div_sqrts(3.3818852462305824e-177, 7.655783976315048e+162)" + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, -2.4211175303738945e-155), + 2.4211175303738937e-155, + "f64.no_fold_sqrt_square(-2.4211175303738945e-155)" ); assertEqualF64( - floatexprs73_f64X2Eno_fold_div_sqrts(&instance, 4.596333567064751e+157, 2.3932467846883046e-33), - 1.3858366017266315e+95, - "f64.no_fold_div_sqrts(4.596333567064751e+157, 2.3932467846883046e-33)" + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, -1.6460687611875645e-157), + 1.6460687611532367e-157, + "f64.no_fold_sqrt_square(-1.6460687611875645e-157)" ); assertEqualF64( - floatexprs73_f64X2Eno_fold_div_sqrts(&instance, 2.5327340978668086e-244, 4.475305129961258e+87), - 2.3789399141325018e-166, - "f64.no_fold_div_sqrts(2.5327340978668086e-244, 4.475305129961258e+87)" + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, -3.797811613378828e-186), + 0.0, + "f64.no_fold_sqrt_square(-3.797811613378828e-186)" ); assertEqualF64( - floatexprs73_f64X2Eno_fold_div_sqrts(&instance, 5.103070160197939e-238, 4.601576690980825e+284), - 1.0530826009924495e-261, - "f64.no_fold_div_sqrts(5.103070160197939e-238, 4.601576690980825e+284)" + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, 8.158084284605592e+257), + INFINITY, + "f64.no_fold_sqrt_square(8.158084284605592e+257)" ); } diff --git a/tests/gen/assert_float_exprs.74.c b/tests/gen/assert_float_exprs.74.c index ff01cff..7cc9878 100644 --- a/tests/gen/assert_float_exprs.74.c +++ b/tests/gen/assert_float_exprs.74.c @@ -9,53 +9,43 @@ void test() { floatexprs74Instantiate(&instance, resolveTestImports); printStart("float_exprs.74.wasm"); assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, -4.7285568066582555e+24, 8.677281708846403e+27), - -INFINITY, - "f32.no_fold_mul_sqrt_div(-4.7285568066582555e+24, 8.677281708846403e+27)" + floatexprs74_f32X2Eno_fold_mul_sqrts(&instance, 2.536590811126416e-28, 4.132067465967282e-10), + 3.237493152183345e-19, + "f32.no_fold_mul_sqrts(2.536590811126416e-28, 4.132067465967282e-10)" ); assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, -1.1776881788564836e-36, 9.805153097384004e-30), - -0.0, - "f32.no_fold_mul_sqrt_div(-1.1776881788564836e-36, 9.805153097384004e-30)" + floatexprs74_f32X2Eno_fold_mul_sqrts(&instance, 4.2144832231674335e-27, 97.24911499023438), + 6.401990482879372e-13, + "f32.no_fold_mul_sqrts(4.2144832231674335e-27, 97.24911499023438)" ); assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, 816717056.0, 3.323170900355518e-39), - 1.416756814348236e+28, - "f32.no_fold_mul_sqrt_div(816717056.0, 3.323170900355518e-39)" + floatexprs74_f32X2Eno_fold_mul_sqrts(&instance, 3.7240763422782964e+30, 0.0029449081048369408), + 104723751370752.0, + "f32.no_fold_mul_sqrts(3.7240763422782964e+30, 0.0029449081048369408)" ); assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, -11932267446272.0, 8.637066802072802e+33), - -0.0001283925521420315, - "f32.no_fold_mul_sqrt_div(-11932267446272.0, 8.637066802072802e+33)" - ); - assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, -401.02349853515625, 134.33021545410156), - -34.600547790527344, - "f32.no_fold_mul_sqrt_div(-401.02349853515625, 134.33021545410156)" - ); - assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, 1.4681346229104905e+210, 2.466074582285183e+228), - INFINITY, - "f64.no_fold_mul_sqrt_div(1.4681346229104905e+210, 2.466074582285183e+228)" + floatexprs74_f32X2Eno_fold_mul_sqrts(&instance, 1.8660559344485864e-17, 0.002111261012032628), + 1.9848754584383954e-10, + "f32.no_fold_mul_sqrts(1.8660559344485864e-17, 0.002111261012032628)" ); assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, -1.7254022016758028e-249, 5.5835540747130025e-202), - -0.0, - "f64.no_fold_mul_sqrt_div(-1.7254022016758028e-249, 5.5835540747130025e-202)" + floatexprs74_f64X2Eno_fold_mul_sqrts(&instance, 3.7082569269527534e-194, 4.7183002857015043e-122), + 4.1829020688865954e-158, + "f64.no_fold_mul_sqrts(3.7082569269527534e-194, 4.7183002857015043e-122)" ); assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, 1.6812810256029166e-128, 7.362783602442129e+168), - 6.196112486187196e-213, - "f64.no_fold_mul_sqrt_div(1.6812810256029166e-128, 7.362783602442129e+168)" + floatexprs74_f64X2Eno_fold_mul_sqrts(&instance, 2.329359505918655e-27, 2.0743399642806364e-275), + 2.1981545701574452e-151, + "f64.no_fold_mul_sqrts(2.329359505918655e-27, 2.0743399642806364e-275)" ); assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, -1.0605483729939836e+106, 6.22591783694072e-146), - -4.2503900822233765e+178, - "f64.no_fold_mul_sqrt_div(-1.0605483729939836e+106, 6.22591783694072e-146)" + floatexprs74_f64X2Eno_fold_mul_sqrts(&instance, 1.0541899336289437e-109, 5.98123819872803e-173), + 2.511047809129887e-141, + "f64.no_fold_mul_sqrts(1.0541899336289437e-109, 5.98123819872803e-173)" ); assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, 2.6336349695373093e+31, 3.07914132858533e+253), - 4.746142447510695e-96, - "f64.no_fold_mul_sqrt_div(2.6336349695373093e+31, 3.07914132858533e+253)" + floatexprs74_f64X2Eno_fold_mul_sqrts(&instance, 25589482.717358638, 3.913891207119902e+154), + 1.0007719590506955e+81, + "f64.no_fold_mul_sqrts(25589482.717358638, 3.913891207119902e+154)" ); } diff --git a/tests/gen/assert_float_exprs.75.c b/tests/gen/assert_float_exprs.75.c index 7ed31a1..8105cc2 100644 --- a/tests/gen/assert_float_exprs.75.c +++ b/tests/gen/assert_float_exprs.75.c @@ -9,13 +9,43 @@ void test() { floatexprs75Instantiate(&instance, resolveTestImports); printStart("float_exprs.75.wasm"); assertEqualF32( - floatexprs75_f32X2Eno_flush_intermediate_subnormal(&instance, 1.1754943508222875e-38, 1.1920928955078125e-07, 8388608.0), - 1.1754943508222875e-38, - "f32.no_flush_intermediate_subnormal(1.1754943508222875e-38, 1.1920928955078125e-07, 8388608.0)" + floatexprs75_f32X2Eno_fold_div_sqrts(&instance, 7407384064.0, 209778928.0), + 5.942258358001709, + "f32.no_fold_div_sqrts(7407384064.0, 209778928.0)" + ); + assertEqualF32( + floatexprs75_f32X2Eno_fold_div_sqrts(&instance, 1.3764125694787306e-36, 54692.8984375), + 5.016592728986257e-21, + "f32.no_fold_div_sqrts(1.3764125694787306e-36, 54692.8984375)" + ); + assertEqualF32( + floatexprs75_f32X2Eno_fold_div_sqrts(&instance, 9.792889648106701e+17, 1.2643551761115646e-09), + 27830490497024.0, + "f32.no_fold_div_sqrts(9.792889648106701e+17, 1.2643551761115646e-09)" + ); + assertEqualF32( + floatexprs75_f32X2Eno_fold_div_sqrts(&instance, 2.9141283262714446e-34, 1.7928174342978603e-31), + 0.04031682014465332, + "f32.no_fold_div_sqrts(2.9141283262714446e-34, 1.7928174342978603e-31)" + ); + assertEqualF64( + floatexprs75_f64X2Eno_fold_div_sqrts(&instance, 3.3818852462305824e-177, 7.655783976315048e+162), + 2.1017671425665687e-170, + "f64.no_fold_div_sqrts(3.3818852462305824e-177, 7.655783976315048e+162)" + ); + assertEqualF64( + floatexprs75_f64X2Eno_fold_div_sqrts(&instance, 4.596333567064751e+157, 2.3932467846883046e-33), + 1.3858366017266315e+95, + "f64.no_fold_div_sqrts(4.596333567064751e+157, 2.3932467846883046e-33)" + ); + assertEqualF64( + floatexprs75_f64X2Eno_fold_div_sqrts(&instance, 2.5327340978668086e-244, 4.475305129961258e+87), + 2.3789399141325018e-166, + "f64.no_fold_div_sqrts(2.5327340978668086e-244, 4.475305129961258e+87)" ); assertEqualF64( - floatexprs75_f64X2Eno_flush_intermediate_subnormal(&instance, 2.2250738585072014e-308, 2.220446049250313e-16, 4503599627370496.0), - 2.2250738585072014e-308, - "f64.no_flush_intermediate_subnormal(2.2250738585072014e-308, 2.220446049250313e-16, 4503599627370496.0)" + floatexprs75_f64X2Eno_fold_div_sqrts(&instance, 5.103070160197939e-238, 4.601576690980825e+284), + 1.0530826009924495e-261, + "f64.no_fold_div_sqrts(5.103070160197939e-238, 4.601576690980825e+284)" ); } diff --git a/tests/gen/assert_float_exprs.76.c b/tests/gen/assert_float_exprs.76.c index 708770f..ba641dd 100644 --- a/tests/gen/assert_float_exprs.76.c +++ b/tests/gen/assert_float_exprs.76.c @@ -8,69 +8,54 @@ void test() { floatexprs76Instance instance; floatexprs76Instantiate(&instance, resolveTestImports); printStart("float_exprs.76.wasm"); - assertEqualU32( - floatexprs76_f32X2Erecoding_eq(&instance, -INFINITY, 3.0), - 1u, - "f32.recoding_eq(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_le(&instance, -INFINITY, 3.0), - 1u, - "f32.recoding_le(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_lt(&instance, -INFINITY, 3.0), - 0u, - "f32.recoding_lt(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_eq(&instance, 0.0, 1.0), - 1u, - "f32.recoding_eq(0.0, 1.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_le(&instance, 0.0, 1.0), - 1u, - "f32.recoding_le(0.0, 1.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_lt(&instance, 0.0, 1.0), - 0u, - "f32.recoding_lt(0.0, 1.0)" - ); - assertEqualU32( - floatexprs76_f64X2Erecoding_eq(&instance, -INFINITY, 3.0), - 1u, - "f64.recoding_eq(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f64X2Erecoding_le(&instance, -INFINITY, 3.0), - 1u, - "f64.recoding_le(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f64X2Erecoding_lt(&instance, -INFINITY, 3.0), - 0u, - "f64.recoding_lt(-INFINITY, 3.0)" + assertEqualF32( + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, -4.7285568066582555e+24, 8.677281708846403e+27), + -INFINITY, + "f32.no_fold_mul_sqrt_div(-4.7285568066582555e+24, 8.677281708846403e+27)" ); - assertEqualU32( - floatexprs76_f64X2Erecoding_eq(&instance, 0.0, 1.0), - 1u, - "f64.recoding_eq(0.0, 1.0)" + assertEqualF32( + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, -1.1776881788564836e-36, 9.805153097384004e-30), + -0.0, + "f32.no_fold_mul_sqrt_div(-1.1776881788564836e-36, 9.805153097384004e-30)" ); - assertEqualU32( - floatexprs76_f64X2Erecoding_le(&instance, 0.0, 1.0), - 1u, - "f64.recoding_le(0.0, 1.0)" + assertEqualF32( + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, 816717056.0, 3.323170900355518e-39), + 1.416756814348236e+28, + "f32.no_fold_mul_sqrt_div(816717056.0, 3.323170900355518e-39)" ); - assertEqualU32( - floatexprs76_f64X2Erecoding_lt(&instance, 0.0, 1.0), - 0u, - "f64.recoding_lt(0.0, 1.0)" + assertEqualF32( + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, -11932267446272.0, 8.637066802072802e+33), + -0.0001283925521420315, + "f32.no_fold_mul_sqrt_div(-11932267446272.0, 8.637066802072802e+33)" ); assertEqualF32( - floatexprs76_recoding_demote(&instance, 2.3860049081905093e-40, 1221.0), - 2.913312062965535e-37, - "recoding_demote(2.3860049081905093e-40, 1221.0)" + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, -401.02349853515625, 134.33021545410156), + -34.600547790527344, + "f32.no_fold_mul_sqrt_div(-401.02349853515625, 134.33021545410156)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, 1.4681346229104905e+210, 2.466074582285183e+228), + INFINITY, + "f64.no_fold_mul_sqrt_div(1.4681346229104905e+210, 2.466074582285183e+228)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, -1.7254022016758028e-249, 5.5835540747130025e-202), + -0.0, + "f64.no_fold_mul_sqrt_div(-1.7254022016758028e-249, 5.5835540747130025e-202)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, 1.6812810256029166e-128, 7.362783602442129e+168), + 6.196112486187196e-213, + "f64.no_fold_mul_sqrt_div(1.6812810256029166e-128, 7.362783602442129e+168)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, -1.0605483729939836e+106, 6.22591783694072e-146), + -4.2503900822233765e+178, + "f64.no_fold_mul_sqrt_div(-1.0605483729939836e+106, 6.22591783694072e-146)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, 2.6336349695373093e+31, 3.07914132858533e+253), + 4.746142447510695e-96, + "f64.no_fold_mul_sqrt_div(2.6336349695373093e+31, 3.07914132858533e+253)" ); } diff --git a/tests/gen/assert_float_exprs.77.c b/tests/gen/assert_float_exprs.77.c index 513aced..b72b81f 100644 --- a/tests/gen/assert_float_exprs.77.c +++ b/tests/gen/assert_float_exprs.77.c @@ -8,14 +8,14 @@ void test() { floatexprs77Instance instance; floatexprs77Instantiate(&instance, resolveTestImports); printStart("float_exprs.77.wasm"); - assertEqualU32( - floatexprs77_f32X2Eno_extended_precision_div(&instance, 3.0, 7.0, 0.4285714328289032), - 1u, - "f32.no_extended_precision_div(3.0, 7.0, 0.4285714328289032)" + assertEqualF32( + floatexprs77_f32X2Eno_flush_intermediate_subnormal(&instance, 1.1754943508222875e-38, 1.1920928955078125e-07, 8388608.0), + 1.1754943508222875e-38, + "f32.no_flush_intermediate_subnormal(1.1754943508222875e-38, 1.1920928955078125e-07, 8388608.0)" ); - assertEqualU32( - floatexprs77_f64X2Eno_extended_precision_div(&instance, 3.0, 7.0, 0.42857142857142855), - 1u, - "f64.no_extended_precision_div(3.0, 7.0, 0.42857142857142855)" + assertEqualF64( + floatexprs77_f64X2Eno_flush_intermediate_subnormal(&instance, 2.2250738585072014e-308, 2.220446049250313e-16, 4503599627370496.0), + 2.2250738585072014e-308, + "f64.no_flush_intermediate_subnormal(2.2250738585072014e-308, 2.220446049250313e-16, 4503599627370496.0)" ); } diff --git a/tests/gen/assert_float_exprs.78.c b/tests/gen/assert_float_exprs.78.c index 74ab91b..ae7b6c7 100644 --- a/tests/gen/assert_float_exprs.78.c +++ b/tests/gen/assert_float_exprs.78.c @@ -8,14 +8,69 @@ void test() { floatexprs78Instance instance; floatexprs78Instantiate(&instance, resolveTestImports); printStart("float_exprs.78.wasm"); + assertEqualU32( + floatexprs78_f32X2Erecoding_eq(&instance, -INFINITY, 3.0), + 1u, + "f32.recoding_eq(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_le(&instance, -INFINITY, 3.0), + 1u, + "f32.recoding_le(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_lt(&instance, -INFINITY, 3.0), + 0u, + "f32.recoding_lt(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_eq(&instance, 0.0, 1.0), + 1u, + "f32.recoding_eq(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_le(&instance, 0.0, 1.0), + 1u, + "f32.recoding_le(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_lt(&instance, 0.0, 1.0), + 0u, + "f32.recoding_lt(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_eq(&instance, -INFINITY, 3.0), + 1u, + "f64.recoding_eq(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_le(&instance, -INFINITY, 3.0), + 1u, + "f64.recoding_le(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_lt(&instance, -INFINITY, 3.0), + 0u, + "f64.recoding_lt(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_eq(&instance, 0.0, 1.0), + 1u, + "f64.recoding_eq(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_le(&instance, 0.0, 1.0), + 1u, + "f64.recoding_le(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_lt(&instance, 0.0, 1.0), + 0u, + "f64.recoding_lt(0.0, 1.0)" + ); assertEqualF32( - floatexprs78_f32X2Eno_distribute_exact(&instance, -0.0), - 0.0, - "f32.no_distribute_exact(-0.0)" - ); - assertEqualF64( - floatexprs78_f64X2Eno_distribute_exact(&instance, -0.0), - 0.0, - "f64.no_distribute_exact(-0.0)" + floatexprs78_recoding_demote(&instance, 2.3860049081905093e-40, 1221.0), + 2.913312062965535e-37, + "recoding_demote(2.3860049081905093e-40, 1221.0)" ); } diff --git a/tests/gen/assert_float_exprs.79.c b/tests/gen/assert_float_exprs.79.c index a4be819..bcb03a4 100644 --- a/tests/gen/assert_float_exprs.79.c +++ b/tests/gen/assert_float_exprs.79.c @@ -8,74 +8,14 @@ void test() { floatexprs79Instance instance; floatexprs79Instantiate(&instance, resolveTestImports); printStart("float_exprs.79.wasm"); - assertEqualF32( - floatexprs79_f32X2Esqrt(&instance, 2.0), - 1.4142135381698608, - "f32.sqrt(2.0)" - ); - assertEqualF32( - floatexprs79_f32X2Exkcd_sqrt_2(&instance, 3.0, 5.0, 3.1415927410125732, 7.0), - 1.4142200946807861, - "f32.xkcd_sqrt_2(3.0, 5.0, 3.1415927410125732, 7.0)" - ); - assertEqualF32( - floatexprs79_f32X2Esqrt(&instance, 3.0), - 1.7320507764816284, - "f32.sqrt(3.0)" - ); - assertEqualF32( - floatexprs79_f32X2Exkcd_sqrt_3(&instance, 2.0, 2.7182817459106445, 3.1415927410125732), - 1.7305119037628174, - "f32.xkcd_sqrt_3(2.0, 2.7182817459106445, 3.1415927410125732)" - ); - assertEqualF32( - floatexprs79_f32X2Esqrt(&instance, 5.0), - 2.2360680103302, - "f32.sqrt(5.0)" - ); - assertEqualF32( - floatexprs79_f32X2Exkcd_sqrt_5(&instance, 2.0, 2.7182817459106445, 3.0), - 2.2357587814331055, - "f32.xkcd_sqrt_5(2.0, 2.7182817459106445, 3.0)" - ); - assertEqualF32( - floatexprs79_f32X2Exkcd_better_sqrt_5(&instance, 13.0, 4.0, 3.1415927410125732, 24.0), - 2.2360680103302, - "f32.xkcd_better_sqrt_5(13.0, 4.0, 3.1415927410125732, 24.0)" - ); - assertEqualF64( - floatexprs79_f64X2Esqrt(&instance, 2.0), - 1.4142135623730951, - "f64.sqrt(2.0)" - ); - assertEqualF64( - floatexprs79_f64X2Exkcd_sqrt_2(&instance, 3.0, 5.0, 3.141592653589793, 7.0), - 1.4142200580539208, - "f64.xkcd_sqrt_2(3.0, 5.0, 3.141592653589793, 7.0)" - ); - assertEqualF64( - floatexprs79_f64X2Esqrt(&instance, 3.0), - 1.7320508075688772, - "f64.sqrt(3.0)" - ); - assertEqualF64( - floatexprs79_f64X2Exkcd_sqrt_3(&instance, 2.0, 2.718281828459045, 3.141592653589793), - 1.7305119588645301, - "f64.xkcd_sqrt_3(2.0, 2.718281828459045, 3.141592653589793)" - ); - assertEqualF64( - floatexprs79_f64X2Esqrt(&instance, 5.0), - 2.23606797749979, - "f64.sqrt(5.0)" - ); - assertEqualF64( - floatexprs79_f64X2Exkcd_sqrt_5(&instance, 2.0, 2.718281828459045, 3.0), - 2.2357588823428847, - "f64.xkcd_sqrt_5(2.0, 2.718281828459045, 3.0)" - ); - assertEqualF64( - floatexprs79_f64X2Exkcd_better_sqrt_5(&instance, 13.0, 4.0, 3.141592653589793, 24.0), - 2.2360678094452893, - "f64.xkcd_better_sqrt_5(13.0, 4.0, 3.141592653589793, 24.0)" + assertEqualU32( + floatexprs79_f32X2Eno_extended_precision_div(&instance, 3.0, 7.0, 0.4285714328289032), + 1u, + "f32.no_extended_precision_div(3.0, 7.0, 0.4285714328289032)" + ); + assertEqualU32( + floatexprs79_f64X2Eno_extended_precision_div(&instance, 3.0, 7.0, 0.42857142857142855), + 1u, + "f64.no_extended_precision_div(3.0, 7.0, 0.42857142857142855)" ); } diff --git a/tests/gen/assert_float_exprs.80.c b/tests/gen/assert_float_exprs.80.c index 70f879d..779a54e 100644 --- a/tests/gen/assert_float_exprs.80.c +++ b/tests/gen/assert_float_exprs.80.c @@ -9,13 +9,13 @@ void test() { floatexprs80Instantiate(&instance, resolveTestImports); printStart("float_exprs.80.wasm"); assertEqualF32( - floatexprs80_f32X2Ecompute_radix(&instance, 1.0, 1.0), - 2.0, - "f32.compute_radix(1.0, 1.0)" + floatexprs80_f32X2Eno_distribute_exact(&instance, -0.0), + 0.0, + "f32.no_distribute_exact(-0.0)" ); assertEqualF64( - floatexprs80_f64X2Ecompute_radix(&instance, 1.0, 1.0), - 2.0, - "f64.compute_radix(1.0, 1.0)" + floatexprs80_f64X2Eno_distribute_exact(&instance, -0.0), + 0.0, + "f64.no_distribute_exact(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.81.c b/tests/gen/assert_float_exprs.81.c index 4e4d701..b75e469 100644 --- a/tests/gen/assert_float_exprs.81.c +++ b/tests/gen/assert_float_exprs.81.c @@ -9,13 +9,73 @@ void test() { floatexprs81Instantiate(&instance, resolveTestImports); printStart("float_exprs.81.wasm"); assertEqualF32( - floatexprs81_f32X2Eno_fold_sub1_mul_add(&instance, 2.3283064365386963e-10, 1.0), - 0.0, - "f32.no_fold_sub1_mul_add(2.3283064365386963e-10, 1.0)" + floatexprs81_f32X2Esqrt(&instance, 2.0), + 1.4142135381698608, + "f32.sqrt(2.0)" + ); + assertEqualF32( + floatexprs81_f32X2Exkcd_sqrt_2(&instance, 3.0, 5.0, 3.1415927410125732, 7.0), + 1.4142200946807861, + "f32.xkcd_sqrt_2(3.0, 5.0, 3.1415927410125732, 7.0)" + ); + assertEqualF32( + floatexprs81_f32X2Esqrt(&instance, 3.0), + 1.7320507764816284, + "f32.sqrt(3.0)" + ); + assertEqualF32( + floatexprs81_f32X2Exkcd_sqrt_3(&instance, 2.0, 2.7182817459106445, 3.1415927410125732), + 1.7305119037628174, + "f32.xkcd_sqrt_3(2.0, 2.7182817459106445, 3.1415927410125732)" + ); + assertEqualF32( + floatexprs81_f32X2Esqrt(&instance, 5.0), + 2.2360680103302, + "f32.sqrt(5.0)" + ); + assertEqualF32( + floatexprs81_f32X2Exkcd_sqrt_5(&instance, 2.0, 2.7182817459106445, 3.0), + 2.2357587814331055, + "f32.xkcd_sqrt_5(2.0, 2.7182817459106445, 3.0)" + ); + assertEqualF32( + floatexprs81_f32X2Exkcd_better_sqrt_5(&instance, 13.0, 4.0, 3.1415927410125732, 24.0), + 2.2360680103302, + "f32.xkcd_better_sqrt_5(13.0, 4.0, 3.1415927410125732, 24.0)" + ); + assertEqualF64( + floatexprs81_f64X2Esqrt(&instance, 2.0), + 1.4142135623730951, + "f64.sqrt(2.0)" + ); + assertEqualF64( + floatexprs81_f64X2Exkcd_sqrt_2(&instance, 3.0, 5.0, 3.141592653589793, 7.0), + 1.4142200580539208, + "f64.xkcd_sqrt_2(3.0, 5.0, 3.141592653589793, 7.0)" + ); + assertEqualF64( + floatexprs81_f64X2Esqrt(&instance, 3.0), + 1.7320508075688772, + "f64.sqrt(3.0)" + ); + assertEqualF64( + floatexprs81_f64X2Exkcd_sqrt_3(&instance, 2.0, 2.718281828459045, 3.141592653589793), + 1.7305119588645301, + "f64.xkcd_sqrt_3(2.0, 2.718281828459045, 3.141592653589793)" + ); + assertEqualF64( + floatexprs81_f64X2Esqrt(&instance, 5.0), + 2.23606797749979, + "f64.sqrt(5.0)" + ); + assertEqualF64( + floatexprs81_f64X2Exkcd_sqrt_5(&instance, 2.0, 2.718281828459045, 3.0), + 2.2357588823428847, + "f64.xkcd_sqrt_5(2.0, 2.718281828459045, 3.0)" ); assertEqualF64( - floatexprs81_f64X2Eno_fold_sub1_mul_add(&instance, 5.421010862427522e-20, 1.0), - 0.0, - "f64.no_fold_sub1_mul_add(5.421010862427522e-20, 1.0)" + floatexprs81_f64X2Exkcd_better_sqrt_5(&instance, 13.0, 4.0, 3.141592653589793, 24.0), + 2.2360678094452893, + "f64.xkcd_better_sqrt_5(13.0, 4.0, 3.141592653589793, 24.0)" ); } diff --git a/tests/gen/assert_float_exprs.82.c b/tests/gen/assert_float_exprs.82.c index 5b4580f..0cb5535 100644 --- a/tests/gen/assert_float_exprs.82.c +++ b/tests/gen/assert_float_exprs.82.c @@ -8,14 +8,14 @@ void test() { floatexprs82Instance instance; floatexprs82Instantiate(&instance, resolveTestImports); printStart("float_exprs.82.wasm"); - assertEqualU32( - floatexprs82_f32X2Eno_fold_add_le_monotonicity(&instance, INFINITY, -INFINITY, INFINITY), - 0u, - "f32.no_fold_add_le_monotonicity(INFINITY, -INFINITY, INFINITY)" + assertEqualF32( + floatexprs82_f32X2Ecompute_radix(&instance, 1.0, 1.0), + 2.0, + "f32.compute_radix(1.0, 1.0)" ); - assertEqualU32( - floatexprs82_f64X2Eno_fold_add_le_monotonicity(&instance, INFINITY, -INFINITY, INFINITY), - 0u, - "f64.no_fold_add_le_monotonicity(INFINITY, -INFINITY, INFINITY)" + assertEqualF64( + floatexprs82_f64X2Ecompute_radix(&instance, 1.0, 1.0), + 2.0, + "f64.compute_radix(1.0, 1.0)" ); } diff --git a/tests/gen/assert_float_exprs.83.c b/tests/gen/assert_float_exprs.83.c index 0a3edb4..e5e72c7 100644 --- a/tests/gen/assert_float_exprs.83.c +++ b/tests/gen/assert_float_exprs.83.c @@ -8,4 +8,14 @@ void test() { floatexprs83Instance instance; floatexprs83Instantiate(&instance, resolveTestImports); printStart("float_exprs.83.wasm"); + assertEqualF32( + floatexprs83_f32X2Eno_fold_sub1_mul_add(&instance, 2.3283064365386963e-10, 1.0), + 0.0, + "f32.no_fold_sub1_mul_add(2.3283064365386963e-10, 1.0)" + ); + assertEqualF64( + floatexprs83_f64X2Eno_fold_sub1_mul_add(&instance, 5.421010862427522e-20, 1.0), + 0.0, + "f64.no_fold_sub1_mul_add(5.421010862427522e-20, 1.0)" + ); } diff --git a/tests/gen/assert_float_exprs.84.c b/tests/gen/assert_float_exprs.84.c index b292c75..90ad584 100644 --- a/tests/gen/assert_float_exprs.84.c +++ b/tests/gen/assert_float_exprs.84.c @@ -8,14 +8,14 @@ void test() { floatexprs84Instance instance; floatexprs84Instantiate(&instance, resolveTestImports); printStart("float_exprs.84.wasm"); - assertEqualF32( - floatexprs84_f32X2Eepsilon(&instance), - -1.1920928955078125e-07, - "f32.epsilon()" + assertEqualU32( + floatexprs84_f32X2Eno_fold_add_le_monotonicity(&instance, INFINITY, -INFINITY, INFINITY), + 0u, + "f32.no_fold_add_le_monotonicity(INFINITY, -INFINITY, INFINITY)" ); - assertEqualF64( - floatexprs84_f64X2Eepsilon(&instance), - 2.220446049250313e-16, - "f64.epsilon()" + assertEqualU32( + floatexprs84_f64X2Eno_fold_add_le_monotonicity(&instance, INFINITY, -INFINITY, INFINITY), + 0u, + "f64.no_fold_add_le_monotonicity(INFINITY, -INFINITY, INFINITY)" ); } diff --git a/tests/gen/assert_float_exprs.85.c b/tests/gen/assert_float_exprs.85.c index 7eb1c23..160eae7 100644 --- a/tests/gen/assert_float_exprs.85.c +++ b/tests/gen/assert_float_exprs.85.c @@ -8,14 +8,4 @@ void test() { floatexprs85Instance instance; floatexprs85Instantiate(&instance, resolveTestImports); printStart("float_exprs.85.wasm"); - assertEqualF32( - floatexprs85_f32X2Eepsilon(&instance), - 1.1920928955078125e-07, - "f32.epsilon()" - ); - assertEqualF64( - floatexprs85_f64X2Eepsilon(&instance), - 2.220446049250313e-16, - "f64.epsilon()" - ); } diff --git a/tests/gen/assert_float_exprs.86.c b/tests/gen/assert_float_exprs.86.c index 5b649e9..141e02d 100644 --- a/tests/gen/assert_float_exprs.86.c +++ b/tests/gen/assert_float_exprs.86.c @@ -8,4 +8,14 @@ void test() { floatexprs86Instance instance; floatexprs86Instantiate(&instance, resolveTestImports); printStart("float_exprs.86.wasm"); + assertEqualF32( + floatexprs86_f32X2Eepsilon(&instance), + -1.1920928955078125e-07, + "f32.epsilon()" + ); + assertEqualF64( + floatexprs86_f64X2Eepsilon(&instance), + 2.220446049250313e-16, + "f64.epsilon()" + ); } diff --git a/tests/gen/assert_float_exprs.87.c b/tests/gen/assert_float_exprs.87.c index c0947f1..da9f01e 100644 --- a/tests/gen/assert_float_exprs.87.c +++ b/tests/gen/assert_float_exprs.87.c @@ -8,169 +8,14 @@ void test() { floatexprs87Instance instance; floatexprs87Instantiate(&instance, resolveTestImports); printStart("float_exprs.87.wasm"); - assertEqualU32( - floatexprs87_f32X2Earithmetic_nan_bitpattern(&instance, 2139107856u, 2139107856u), - 2143289344u, - "f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 0u, 0u), - 2143289344u, - "f32.canonical_nan_bitpattern(0u, 0u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 2143289344u, 2143289344u), - 2143289344u, - "f32.canonical_nan_bitpattern(2143289344u, 2143289344u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 4290772992u, 2143289344u), - 2143289344u, - "f32.canonical_nan_bitpattern(4290772992u, 2143289344u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 2143289344u, 4290772992u), - 2143289344u, - "f32.canonical_nan_bitpattern(2143289344u, 4290772992u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 4290772992u, 4290772992u), - 2143289344u, - "f32.canonical_nan_bitpattern(4290772992u, 4290772992u)" - ); - assertEqualU32( - floatexprs87_f32X2Enonarithmetic_nan_bitpattern(&instance, 2143302160u), - 4290785808u, - "f32.nonarithmetic_nan_bitpattern(2143302160u)" - ); - assertEqualU32( - floatexprs87_f32X2Enonarithmetic_nan_bitpattern(&instance, 4290785808u), - 2143302160u, - "f32.nonarithmetic_nan_bitpattern(4290785808u)" - ); - assertEqualU32( - floatexprs87_f32X2Enonarithmetic_nan_bitpattern(&instance, 2139107856u), - 4286591504u, - "f32.nonarithmetic_nan_bitpattern(2139107856u)" - ); - assertEqualU32( - floatexprs87_f32X2Enonarithmetic_nan_bitpattern(&instance, 4286591504u), - 2139107856u, - "f32.nonarithmetic_nan_bitpattern(4286591504u)" - ); - assertEqualU64( - floatexprs87_f64X2Earithmetic_nan_bitpattern(&instance, 9218868437227418128ull, 9218868437227418128ull), - 9221120237041090560ull, - "f64.arithmetic_nan_bitpattern(9218868437227418128ull, 9218868437227418128ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 0ull, 0ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(0ull, 0ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 9221120237041090560ull, 9221120237041090560ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(9221120237041090560ull, 9221120237041090560ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 18444492273895866368ull, 9221120237041090560ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(18444492273895866368ull, 9221120237041090560ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 9221120237041090560ull, 18444492273895866368ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(9221120237041090560ull, 18444492273895866368ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 18444492273895866368ull, 18444492273895866368ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(18444492273895866368ull, 18444492273895866368ull)" - ); - assertEqualU64( - floatexprs87_f64X2Enonarithmetic_nan_bitpattern(&instance, 9221120237041103376ull), - 18444492273895879184ull, - "f64.nonarithmetic_nan_bitpattern(9221120237041103376ull)" - ); - assertEqualU64( - floatexprs87_f64X2Enonarithmetic_nan_bitpattern(&instance, 18444492273895879184ull), - 9221120237041103376ull, - "f64.nonarithmetic_nan_bitpattern(18444492273895879184ull)" - ); - assertEqualU64( - floatexprs87_f64X2Enonarithmetic_nan_bitpattern(&instance, 9218868437227418128ull), - 18442240474082193936ull, - "f64.nonarithmetic_nan_bitpattern(9218868437227418128ull)" - ); - assertEqualU64( - floatexprs87_f64X2Enonarithmetic_nan_bitpattern(&instance, 18442240474082193936ull), - 9218868437227418128ull, - "f64.nonarithmetic_nan_bitpattern(18442240474082193936ull)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_sub_zero(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_sub_zero(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_neg0_sub(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_neg0_sub(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_mul_one(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_mul_one(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_neg1_mul(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_neg1_mul(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_div_one(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_div_one(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_div_neg1(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_div_neg1(2141192192u)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_sub_zero(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_sub_zero(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_neg0_sub(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_neg0_sub(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_mul_one(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_mul_one(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_neg1_mul(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_neg1_mul(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_div_one(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_div_one(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_div_neg1(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_div_neg1(9219994337134247936ull)" - ); - assertEqualU32( - floatexprs87_no_fold_promote_demote(&instance, 2141192192u), - 2143289344u, - "no_fold_promote_demote(2141192192u)" + assertEqualF32( + floatexprs87_f32X2Eepsilon(&instance), + 1.1920928955078125e-07, + "f32.epsilon()" + ); + assertEqualF64( + floatexprs87_f64X2Eepsilon(&instance), + 2.220446049250313e-16, + "f64.epsilon()" ); } diff --git a/tests/gen/assert_float_exprs.88.c b/tests/gen/assert_float_exprs.88.c index 6d49c2b..be3fed7 100644 --- a/tests/gen/assert_float_exprs.88.c +++ b/tests/gen/assert_float_exprs.88.c @@ -8,14 +8,4 @@ void test() { floatexprs88Instance instance; floatexprs88Instantiate(&instance, resolveTestImports); printStart("float_exprs.88.wasm"); - assertEqualF64( - floatexprs88_dot_product_example(&instance, 32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0), - 2.0, - "dot_product_example(32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0)" - ); - assertEqualF64( - floatexprs88_with_binary_sum_collapse(&instance, 32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0), - 2.0, - "with_binary_sum_collapse(32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0)" - ); } diff --git a/tests/gen/assert_float_exprs.89.c b/tests/gen/assert_float_exprs.89.c index 6d67a8f..fe6a794 100644 --- a/tests/gen/assert_float_exprs.89.c +++ b/tests/gen/assert_float_exprs.89.c @@ -8,34 +8,169 @@ void test() { floatexprs89Instance instance; floatexprs89Instantiate(&instance, resolveTestImports); printStart("float_exprs.89.wasm"); - assertEqualF32( - floatexprs89_f32X2Econtract2fma(&instance, 1.0, 1.0), - 0.0, - "f32.contract2fma(1.0, 1.0)" - ); - assertEqualF32( - floatexprs89_f32X2Econtract2fma(&instance, 1.100000023841858, 1.100000023841858), - 0.0, - "f32.contract2fma(1.100000023841858, 1.100000023841858)" - ); - assertEqualF32( - floatexprs89_f32X2Econtract2fma(&instance, 1.1999999284744263, 1.1999999284744263), - 0.0, - "f32.contract2fma(1.1999999284744263, 1.1999999284744263)" - ); - assertEqualF64( - floatexprs89_f64X2Econtract2fma(&instance, 1.0, 1.0), - 0.0, - "f64.contract2fma(1.0, 1.0)" - ); - assertEqualF64( - floatexprs89_f64X2Econtract2fma(&instance, 1.1, 1.1), - 0.0, - "f64.contract2fma(1.1, 1.1)" - ); - assertEqualF64( - floatexprs89_f64X2Econtract2fma(&instance, 1.2, 1.2), - 0.0, - "f64.contract2fma(1.2, 1.2)" + assertEqualU32( + floatexprs89_f32X2Earithmetic_nan_bitpattern(&instance, 2139107856u, 2139107856u), + 2143289344u, + "f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 0u, 0u), + 2143289344u, + "f32.canonical_nan_bitpattern(0u, 0u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 2143289344u, 2143289344u), + 2143289344u, + "f32.canonical_nan_bitpattern(2143289344u, 2143289344u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 4290772992u, 2143289344u), + 2143289344u, + "f32.canonical_nan_bitpattern(4290772992u, 2143289344u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 2143289344u, 4290772992u), + 2143289344u, + "f32.canonical_nan_bitpattern(2143289344u, 4290772992u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 4290772992u, 4290772992u), + 2143289344u, + "f32.canonical_nan_bitpattern(4290772992u, 4290772992u)" + ); + assertEqualU32( + floatexprs89_f32X2Enonarithmetic_nan_bitpattern(&instance, 2143302160u), + 4290785808u, + "f32.nonarithmetic_nan_bitpattern(2143302160u)" + ); + assertEqualU32( + floatexprs89_f32X2Enonarithmetic_nan_bitpattern(&instance, 4290785808u), + 2143302160u, + "f32.nonarithmetic_nan_bitpattern(4290785808u)" + ); + assertEqualU32( + floatexprs89_f32X2Enonarithmetic_nan_bitpattern(&instance, 2139107856u), + 4286591504u, + "f32.nonarithmetic_nan_bitpattern(2139107856u)" + ); + assertEqualU32( + floatexprs89_f32X2Enonarithmetic_nan_bitpattern(&instance, 4286591504u), + 2139107856u, + "f32.nonarithmetic_nan_bitpattern(4286591504u)" + ); + assertEqualU64( + floatexprs89_f64X2Earithmetic_nan_bitpattern(&instance, 9218868437227418128ull, 9218868437227418128ull), + 9221120237041090560ull, + "f64.arithmetic_nan_bitpattern(9218868437227418128ull, 9218868437227418128ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 0ull, 0ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(0ull, 0ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 9221120237041090560ull, 9221120237041090560ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(9221120237041090560ull, 9221120237041090560ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 18444492273895866368ull, 9221120237041090560ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(18444492273895866368ull, 9221120237041090560ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 9221120237041090560ull, 18444492273895866368ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(9221120237041090560ull, 18444492273895866368ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 18444492273895866368ull, 18444492273895866368ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(18444492273895866368ull, 18444492273895866368ull)" + ); + assertEqualU64( + floatexprs89_f64X2Enonarithmetic_nan_bitpattern(&instance, 9221120237041103376ull), + 18444492273895879184ull, + "f64.nonarithmetic_nan_bitpattern(9221120237041103376ull)" + ); + assertEqualU64( + floatexprs89_f64X2Enonarithmetic_nan_bitpattern(&instance, 18444492273895879184ull), + 9221120237041103376ull, + "f64.nonarithmetic_nan_bitpattern(18444492273895879184ull)" + ); + assertEqualU64( + floatexprs89_f64X2Enonarithmetic_nan_bitpattern(&instance, 9218868437227418128ull), + 18442240474082193936ull, + "f64.nonarithmetic_nan_bitpattern(9218868437227418128ull)" + ); + assertEqualU64( + floatexprs89_f64X2Enonarithmetic_nan_bitpattern(&instance, 18442240474082193936ull), + 9218868437227418128ull, + "f64.nonarithmetic_nan_bitpattern(18442240474082193936ull)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_sub_zero(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_sub_zero(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_neg0_sub(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_neg0_sub(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_mul_one(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_mul_one(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_neg1_mul(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_neg1_mul(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_div_one(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_div_one(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_div_neg1(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_div_neg1(2141192192u)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_sub_zero(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_sub_zero(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_neg0_sub(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_neg0_sub(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_mul_one(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_mul_one(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_neg1_mul(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_neg1_mul(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_div_one(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_div_one(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_div_neg1(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_div_neg1(9219994337134247936ull)" + ); + assertEqualU32( + floatexprs89_no_fold_promote_demote(&instance, 2141192192u), + 2143289344u, + "no_fold_promote_demote(2141192192u)" ); } diff --git a/tests/gen/assert_float_exprs.90.c b/tests/gen/assert_float_exprs.90.c index 3b6de19..68522fc 100644 --- a/tests/gen/assert_float_exprs.90.c +++ b/tests/gen/assert_float_exprs.90.c @@ -8,14 +8,14 @@ void test() { floatexprs90Instance instance; floatexprs90Instantiate(&instance, resolveTestImports); printStart("float_exprs.90.wasm"); - assertEqualF32( - floatexprs90_f32X2Edivision_by_small_number(&instance, 112000000.0, 100000.0, 0.0008999999845400453), - 888888.0, - "f32.division_by_small_number(112000000.0, 100000.0, 0.0008999999845400453)" + assertEqualF64( + floatexprs90_dot_product_example(&instance, 32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0), + 2.0, + "dot_product_example(32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0)" ); assertEqualF64( - floatexprs90_f64X2Edivision_by_small_number(&instance, 112000000.0, 100000.0, 0.0009), - 888888.8888888806, - "f64.division_by_small_number(112000000.0, 100000.0, 0.0009)" + floatexprs90_with_binary_sum_collapse(&instance, 32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0), + 2.0, + "with_binary_sum_collapse(32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0)" ); } diff --git a/tests/gen/assert_float_exprs.91.c b/tests/gen/assert_float_exprs.91.c index b9ff160..79bd6df 100644 --- a/tests/gen/assert_float_exprs.91.c +++ b/tests/gen/assert_float_exprs.91.c @@ -9,13 +9,33 @@ void test() { floatexprs91Instantiate(&instance, resolveTestImports); printStart("float_exprs.91.wasm"); assertEqualF32( - floatexprs91_f32X2Egolden_ratio(&instance, 0.5, 1.0, 5.0), - 1.6180340051651, - "f32.golden_ratio(0.5, 1.0, 5.0)" + floatexprs91_f32X2Econtract2fma(&instance, 1.0, 1.0), + 0.0, + "f32.contract2fma(1.0, 1.0)" + ); + assertEqualF32( + floatexprs91_f32X2Econtract2fma(&instance, 1.100000023841858, 1.100000023841858), + 0.0, + "f32.contract2fma(1.100000023841858, 1.100000023841858)" + ); + assertEqualF32( + floatexprs91_f32X2Econtract2fma(&instance, 1.1999999284744263, 1.1999999284744263), + 0.0, + "f32.contract2fma(1.1999999284744263, 1.1999999284744263)" + ); + assertEqualF64( + floatexprs91_f64X2Econtract2fma(&instance, 1.0, 1.0), + 0.0, + "f64.contract2fma(1.0, 1.0)" + ); + assertEqualF64( + floatexprs91_f64X2Econtract2fma(&instance, 1.1, 1.1), + 0.0, + "f64.contract2fma(1.1, 1.1)" ); assertEqualF64( - floatexprs91_f64X2Egolden_ratio(&instance, 0.5, 1.0, 5.0), - 1.618033988749895, - "f64.golden_ratio(0.5, 1.0, 5.0)" + floatexprs91_f64X2Econtract2fma(&instance, 1.2, 1.2), + 0.0, + "f64.contract2fma(1.2, 1.2)" ); } diff --git a/tests/gen/assert_float_exprs.92.c b/tests/gen/assert_float_exprs.92.c index 6d0a038..b13bed0 100644 --- a/tests/gen/assert_float_exprs.92.c +++ b/tests/gen/assert_float_exprs.92.c @@ -9,63 +9,13 @@ void test() { floatexprs92Instantiate(&instance, resolveTestImports); printStart("float_exprs.92.wasm"); assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 0.0), - 1.0, - "f32.silver_means(0.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 1.0), - 1.6180340051651, - "f32.silver_means(1.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 2.0), - 2.4142136573791504, - "f32.silver_means(2.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 3.0), - 3.3027756214141846, - "f32.silver_means(3.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 4.0), - 4.236067771911621, - "f32.silver_means(4.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 5.0), - 5.192582130432129, - "f32.silver_means(5.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 0.0), - 1.0, - "f64.silver_means(0.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 1.0), - 1.618033988749895, - "f64.silver_means(1.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 2.0), - 2.414213562373095, - "f64.silver_means(2.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 3.0), - 3.302775637731995, - "f64.silver_means(3.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 4.0), - 4.23606797749979, - "f64.silver_means(4.0)" + floatexprs92_f32X2Edivision_by_small_number(&instance, 112000000.0, 100000.0, 0.0008999999845400453), + 888888.0, + "f32.division_by_small_number(112000000.0, 100000.0, 0.0008999999845400453)" ); assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 5.0), - 5.192582403567252, - "f64.silver_means(5.0)" + floatexprs92_f64X2Edivision_by_small_number(&instance, 112000000.0, 100000.0, 0.0009), + 888888.8888888806, + "f64.division_by_small_number(112000000.0, 100000.0, 0.0009)" ); } diff --git a/tests/gen/assert_float_exprs.93.c b/tests/gen/assert_float_exprs.93.c index ecaaca0..c454de2 100644 --- a/tests/gen/assert_float_exprs.93.c +++ b/tests/gen/assert_float_exprs.93.c @@ -8,9 +8,14 @@ void test() { floatexprs93Instance instance; floatexprs93Instantiate(&instance, resolveTestImports); printStart("float_exprs.93.wasm"); - assertEqualU32( - floatexprs93_point_four(&instance, 4.0, 10.0), - 0u, - "point_four(4.0, 10.0)" + assertEqualF32( + floatexprs93_f32X2Egolden_ratio(&instance, 0.5, 1.0, 5.0), + 1.6180340051651, + "f32.golden_ratio(0.5, 1.0, 5.0)" + ); + assertEqualF64( + floatexprs93_f64X2Egolden_ratio(&instance, 0.5, 1.0, 5.0), + 1.618033988749895, + "f64.golden_ratio(0.5, 1.0, 5.0)" ); } diff --git a/tests/gen/assert_float_exprs.94.c b/tests/gen/assert_float_exprs.94.c index 0c8a8e9..e6d4450 100644 --- a/tests/gen/assert_float_exprs.94.c +++ b/tests/gen/assert_float_exprs.94.c @@ -8,14 +8,64 @@ void test() { floatexprs94Instance instance; floatexprs94Instantiate(&instance, resolveTestImports); printStart("float_exprs.94.wasm"); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 0.0), + 1.0, + "f32.silver_means(0.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 1.0), + 1.6180340051651, + "f32.silver_means(1.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 2.0), + 2.4142136573791504, + "f32.silver_means(2.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 3.0), + 3.3027756214141846, + "f32.silver_means(3.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 4.0), + 4.236067771911621, + "f32.silver_means(4.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 5.0), + 5.192582130432129, + "f32.silver_means(5.0)" + ); + assertEqualF64( + floatexprs94_f64X2Esilver_means(&instance, 0.0), + 1.0, + "f64.silver_means(0.0)" + ); + assertEqualF64( + floatexprs94_f64X2Esilver_means(&instance, 1.0), + 1.618033988749895, + "f64.silver_means(1.0)" + ); + assertEqualF64( + floatexprs94_f64X2Esilver_means(&instance, 2.0), + 2.414213562373095, + "f64.silver_means(2.0)" + ); + assertEqualF64( + floatexprs94_f64X2Esilver_means(&instance, 3.0), + 3.302775637731995, + "f64.silver_means(3.0)" + ); assertEqualF64( - floatexprs94_tau(&instance, 10u), - 6.283185307179583, - "tau(10u)" + floatexprs94_f64X2Esilver_means(&instance, 4.0), + 4.23606797749979, + "f64.silver_means(4.0)" ); assertEqualF64( - floatexprs94_tau(&instance, 11u), - 6.283185307179586, - "tau(11u)" + floatexprs94_f64X2Esilver_means(&instance, 5.0), + 5.192582403567252, + "f64.silver_means(5.0)" ); } diff --git a/tests/gen/assert_float_exprs.95.c b/tests/gen/assert_float_exprs.95.c index 93e4761..f28e8a5 100644 --- a/tests/gen/assert_float_exprs.95.c +++ b/tests/gen/assert_float_exprs.95.c @@ -8,14 +8,9 @@ void test() { floatexprs95Instance instance; floatexprs95Instantiate(&instance, resolveTestImports); printStart("float_exprs.95.wasm"); - assertEqualF32( - floatexprs95_f32X2Eno_fold_conditional_inc(&instance, -0.0, -1.0), - -0.0, - "f32.no_fold_conditional_inc(-0.0, -1.0)" - ); - assertEqualF64( - floatexprs95_f64X2Eno_fold_conditional_inc(&instance, -0.0, -1.0), - -0.0, - "f64.no_fold_conditional_inc(-0.0, -1.0)" + assertEqualU32( + floatexprs95_point_four(&instance, 4.0, 10.0), + 0u, + "point_four(4.0, 10.0)" ); } diff --git a/tests/gen/assert_float_exprs.96.c b/tests/gen/assert_float_exprs.96.c new file mode 100644 index 0000000..7a169d1 --- /dev/null +++ b/tests/gen/assert_float_exprs.96.c @@ -0,0 +1,21 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_float_exprs.96.h" + +void test() { + floatexprs96Instance instance; + floatexprs96Instantiate(&instance, resolveTestImports); + printStart("float_exprs.96.wasm"); + assertEqualF64( + floatexprs96_tau(&instance, 10u), + 6.283185307179583, + "tau(10u)" + ); + assertEqualF64( + floatexprs96_tau(&instance, 11u), + 6.283185307179586, + "tau(11u)" + ); +} diff --git a/tests/gen/assert_float_exprs.97.c b/tests/gen/assert_float_exprs.97.c new file mode 100644 index 0000000..504bb32 --- /dev/null +++ b/tests/gen/assert_float_exprs.97.c @@ -0,0 +1,21 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_float_exprs.97.h" + +void test() { + floatexprs97Instance instance; + floatexprs97Instantiate(&instance, resolveTestImports); + printStart("float_exprs.97.wasm"); + assertEqualF32( + floatexprs97_f32X2Eno_fold_conditional_inc(&instance, -0.0, -1.0), + -0.0, + "f32.no_fold_conditional_inc(-0.0, -1.0)" + ); + assertEqualF64( + floatexprs97_f64X2Eno_fold_conditional_inc(&instance, -0.0, -1.0), + -0.0, + "f64.no_fold_conditional_inc(-0.0, -1.0)" + ); +} diff --git a/tests/gen/assert_float_literals.0.c b/tests/gen/assert_float_literals.0.c index 6148571..06d23a3 100644 --- a/tests/gen/assert_float_literals.0.c +++ b/tests/gen/assert_float_literals.0.c @@ -113,6 +113,26 @@ void test() { 1149239296u, "f32.trailing_dot()" ); + assertEqualU32( + floatliterals0_f32X2Emisc_int(&instance), + 1200726656u, + "f32.misc_int()" + ); + assertEqualU32( + floatliterals0_f32X2Elarge_int(&instance), + 1736441856u, + "f32.large_int()" + ); + assertEqualU32( + floatliterals0_f32X2Emin_int32(&instance), + 3472883712u, + "f32.min_int32()" + ); + assertEqualU32( + floatliterals0_f32X2Emin_int64(&instance), + 3741319168u, + "f32.min_int64()" + ); assertEqualU32( floatliterals0_f32_decX2Ezero(&instance), 0u, @@ -163,6 +183,26 @@ void test() { 1065353217u, "f32_dec.root_beer_float()" ); + assertEqualU32( + floatliterals0_f32_decX2Emisc_int(&instance), + 1178657792u, + "f32_dec.misc_int()" + ); + assertEqualU32( + floatliterals0_f32_decX2Elarge_int(&instance), + 1621981420u, + "f32_dec.large_int()" + ); + assertEqualU32( + floatliterals0_f32_decX2Emin_int32(&instance), + 3472883712u, + "f32_dec.min_int32()" + ); + assertEqualU32( + floatliterals0_f32_decX2Emin_int64(&instance), + 3741319168u, + "f32_dec.min_int64()" + ); assertEqualU64( floatliterals0_f64X2Eall_ones_nan(&instance), 18446744073709551615ull, @@ -243,6 +283,26 @@ void test() { 5057542381537067008ull, "f64.trailing_dot()" ); + assertEqualU64( + floatliterals0_f64X2Emisc_int(&instance), + 4679860480993394688ull, + "f64.misc_int()" + ); + assertEqualU64( + floatliterals0_f64X2Elarge_int(&instance), + 4967470388989657088ull, + "f64.large_int()" + ); + assertEqualU64( + floatliterals0_f64X2Emin_int32(&instance), + 13970166044103278592ull, + "f64.min_int32()" + ); + assertEqualU64( + floatliterals0_f64X2Emin_int64(&instance), + 14114281232179134464ull, + "f64.min_int64()" + ); assertEqualU64( floatliterals0_f64_decX2Ezero(&instance), 0ull, @@ -293,6 +353,26 @@ void test() { 4607182419335945764ull, "f64_dec.root_beer_float()" ); + assertEqualU64( + floatliterals0_f64_decX2Emisc_int(&instance), + 4668012349850910720ull, + "f64_dec.misc_int()" + ); + assertEqualU64( + floatliterals0_f64_decX2Elarge_int(&instance), + 4906019910204099648ull, + "f64_dec.large_int()" + ); + assertEqualU64( + floatliterals0_f64_decX2Emin_int32(&instance), + 13970166044103278592ull, + "f64_dec.min_int32()" + ); + assertEqualU64( + floatliterals0_f64_decX2Emin_int64(&instance), + 14114281232179134464ull, + "f64_dec.min_int64()" + ); assertEqualF32( floatliterals0_f32X2DdecX2Dsep1(&instance), 1000000.0, diff --git a/tests/gen/assert_float_misc.0.c b/tests/gen/assert_float_misc.0.c index 970196b..6adadac 100644 --- a/tests/gen/assert_float_misc.0.c +++ b/tests/gen/assert_float_misc.0.c @@ -1903,6 +1903,156 @@ void test() { 0.9999999999999998, "f64.sqrt(0.9999999999999997)" ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.2499999850988388), + 0.4999999701976776, + "f32.sqrt(0.2499999850988388)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.25), + 0.5, + "f32.sqrt(0.25)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.2500000298023224), + 0.5, + "f32.sqrt(0.2500000298023224)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.2500000596046448), + 0.5000000596046448, + "f32.sqrt(0.2500000596046448)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.24999999999999997), + 0.49999999999999994, + "f64.sqrt(0.24999999999999997)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.25), + 0.5, + "f64.sqrt(0.25)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.25000000000000006), + 0.5, + "f64.sqrt(0.25000000000000006)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.2500000000000001), + 0.5000000000000001, + "f64.sqrt(0.2500000000000001)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 272331603968.0), + 521854.0, + "f32.sqrt(272331603968.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 272331606109.83676), + 521854.0084255718, + "f64.sqrt(272331606109.83676)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 10616005632.0), + 103034.0, + "f32.sqrt(10616005632.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 3014768273129472.0), + 54906904.0, + "f32.sqrt(3014768273129472.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 24597323841536.0), + 4959569.0, + "f32.sqrt(24597323841536.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 1234567936.0), + 35136.41796875, + "f32.sqrt(1234567936.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 10616005156.0), + 103034.0, + "f64.sqrt(10616005156.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 3014768326492836.0), + 54906906.0, + "f64.sqrt(3014768326492836.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 24597324665761.0), + 4959569.0, + "f64.sqrt(24597324665761.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 1234567891.0), + 35136.41830067487, + "f64.sqrt(1234567891.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.5158079862594604), + 0.718197762966156, + "f32.sqrt(0.5158079862594604)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.5028960704803467), + 0.7091516852378845, + "f32.sqrt(0.5028960704803467)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.5158079862594604), + 0.7181977347913737, + "f64.sqrt(0.5158079862594604)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.5028960704803467), + 0.7091516554872778, + "f64.sqrt(0.5028960704803467)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 9.0), + 3.0, + "f32.sqrt(9.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 137.0), + 11.704699516296387, + "f32.sqrt(137.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 1.7737711668014526), + 1.3318300247192383, + "f32.sqrt(1.7737711668014526)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 1000.0), + 31.62277603149414, + "f32.sqrt(1000.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 9.0), + 3.0, + "f64.sqrt(9.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 137.0), + 11.704699910719626, + "f64.sqrt(137.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 1.7737712281864233), + 1.3318300297659695, + "f64.sqrt(1.7737712281864233)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 1000.0), + 31.622776601683793, + "f64.sqrt(1000.0)" + ); assertEqualF32( floatmisc0_f32X2Eceil(&instance, 0.9999999403953552), 1.0, diff --git a/tests/gen/assert_memory_grow.5.c b/tests/gen/assert_memory_grow.5.c new file mode 100644 index 0000000..05ce5d7 --- /dev/null +++ b/tests/gen/assert_memory_grow.5.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_grow.5.h" + +void test() { + memorygrow5Instance instance; + memorygrow5Instantiate(&instance, resolveTestImports); + printStart("memory_grow.5.wasm"); + assertEqualU32( + memorygrow5_grow(&instance), + 1u, + "grow()" + ); +} diff --git a/tests/gen/block.0.wasm b/tests/gen/block.0.wasm index 4e63eea43df2ff41ea7e1849abaa46e7a1e68673..490709eb5011f48b632e10f3cb1dd620061d7aa8 100644 GIT binary patch delta 729 zcmZXS+invv5QfLwY)($ov?S$R4lPh9+ebjnJrXZ~RC%+LV&T}US%)fD`wF1mbIm1E zAAtwpS$G3%ubWUI?Zy7z{GJ*A@}I%)!PkS<+Y`pV9loo-r^hKSO1lEqt)#wKDnXF6 zHC7f2*lHDsCA4-#l~t&4X0y4Z%0jxmAq!bRd$`d`I77!9lrd#I(B(JU+k1nk>MXeX zet?{3GouS>rP09q4Y8k4!ypP&6~eY3mD9PiH@gh|s0M^)JG+gxB3BqaqtU-C*mn0F zs%Ju}bLpni=5lw&u5!EJmmW|4!=ce6+}#?w8MYt72_P8m`hE*s7+RfPkh#ph2(?7G z=WH^}iQs`xfzU2VNAl2&}xmIhy3I%cIXdU_bAq`qpP3ExPH;k3B~6u7liPVH=?=Tt6`%E zOBDVw9mlfN8VO!^a6WgLSMa9SVK4>G_WHltCkgN_Bxl@xoVy>!lX}|Wd;&?GoQ-_R UqY+GdoL_(3`oY-!>oisDFKDCPq5uE@ delta 729 zcmZXSUvASt5XQ$&oTPD@rb+sbKLuJSl-8B{ju5>^rD`2d!ix2-wO+T%lf@0FatAKZ z18@W`z#Avv2JCp91XTIO-)}z8H#73j-k;vL!yr2MJpcaaWBENe4KU5j9K24><*X1) zgCC@YFdP~!iMhc9n#}|;gJ6s0QH}y9CYo}c8)$8=Ny-yw_t#o5Yv_lN?Fd)09&P#N~AUy7;H^NX2Q zchN1o76rlq`Dg$ONI#`3Xf%bEHF-uP(e{ceL(OCY&*_e_uIqU!mj0SASH#Cabak!HU13w24YHW>;MfbkdDA zvM*6=A-oNpaQnRLJEbv0M!(Z(UFK4vhWBlpPVLomINNA@a0Q_^>i%k-`w(`(UyK^V cy?yXM4ZuC2U%Hp8&ckuzhvz+c_}vuVUnXYXuK)l5 diff --git a/tests/gen/block.1.wat b/tests/gen/block.1.wat new file mode 100644 index 0000000..86a47b9 --- /dev/null +++ b/tests/gen/block.1.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (type $sig) (result i32) (param i32))) \ No newline at end of file diff --git a/tests/gen/block.10.wat b/tests/gen/block.10.wat new file mode 100644 index 0000000..303ffe9 --- /dev/null +++ b/tests/gen/block.10.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (type $sig) (param i32) (drop)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/block.100.wasm b/tests/gen/block.100.wasm index 27bd51714abd76598227713d2081dd07a1d29db1..bef742ac9890f68e4e245eb7d19f647e7d41b2b3 100644 GIT binary patch delta 28 fcmdPWo**JF#wfzTROi9~1|RHs7@Qb+7`V9sI}8J$ delta 27 icmdPanjj)3$|%ghRL4~3%)roK&%?;=#K^OVQ^%0Wa44q<^}*=odePU literal 49 zcmZQbEY4+QU|?WmWlUgTtYKziWZ;rvlwx42VXARvU}&)CVdQoJ$^*d%dmaXEZUC7I B1{nYV diff --git a/tests/gen/block.108.wasm b/tests/gen/block.108.wasm index 768236df70d035c564680d84938bd3544d28a374..5c8b4fdf0531ce59629ca413754b3e0c30b91031 100644 GIT binary patch literal 36 rcmZQbEY4+QU|?WmVN76PU}j=u;1XcuV_>Rhs&{1MVdUmv;N}JZMo$A) literal 31 mcmZQbEY4+QU|?WmWlUgTtY>CoWZ>drRds&iuGVdUmv;N}JZMnVHs literal 31 mcmZQbEY4+QU|?WmWlUgTtYcdrdrdrCoWZ>dvCoWZ)8DdvdvE literal 32 ncmZQbEY4+QU|?WmWlUgTtYKziWZ>dvCoWZ>dqCoWZ>dwm>?n|%qYmfp21*V*4BT_L0VYBM(f|Me diff --git a/tests/gen/block.119.wasm b/tests/gen/block.119.wasm index 7dd84908f5586a00e3c837817a4c3d5fea976065..b55f9cce59c23d94e610ff1d00045093cf3bbec0 100644 GIT binary patch delta 23 ecmY#Xn;;@2$jHyYRL4}u$iv9(#K^;jzt delta 18 ZcmY#WoFKx>!^p+Joo04)syV*mgE literal 28 jcmZQbEY4+QU|?WmWlUgTtYKziWZ+_FWMyEg;pPSaF&qNe diff --git a/tests/gen/block.120.wasm b/tests/gen/block.120.wasm index 234c239c21ffb3a0c62b5fb4d5958f6875fd55e3..13a8a3be3efb514c7117ebd22fbb069f656913ce 100644 GIT binary patch literal 41 wcmZQbEY4+QU|?WmWlUgTtYv0mWZ)8E6k=eiWvXT5VdQpZU}&)CVc_Nl0A=|Eng9R* literal 36 rcmZQbEY4+QU|?WmWlUgTtYcdwZ~=+}fsz9c1NR(m09a831ONa4 diff --git a/tests/gen/block.122.wasm b/tests/gen/block.122.wasm index 188d4b3af978027ac8e7fa37300883adb8aca8d0..cd76b8842d2d9bb49155e206ae09da69eb7e4e26 100644 GIT binary patch literal 41 ucmZQbEY4+QU|?WmV@zORs;_5eVr1YFW)x�zyU}Ms7z&MEt literal 33 ocmZQbEY4+QU|?WmWlUgTtYv0mWZ>dqCoWZ)8F6kuSgXR3E%dqCoWZ)8I6lP$mXR3E*U}&)CVdQpXZ~=+}fsz9c1NR(m09ZE!0{{R3 diff --git a/tests/gen/block.125.wasm b/tests/gen/block.125.wasm index 80fcded85588725210e692b04dc01d436c92745e..47c7129ed37b03753412fcbf05ce5c2b1a426323 100644 GIT binary patch literal 46 ycmZQbEY4+QU|?WmWlUgTtY>CoWZ;ry6lY+nXR3DriUYw1dmct^M@Ak7Zf*dCf(2Xv literal 33 ocmZQbEY4+QU|?WmWlUgTtYKziWZ>dqxhWB>pF diff --git a/tests/gen/block.126.wasm b/tests/gen/block.126.wasm index 9a4e7f399402d7cf16bfc0b98cad5ee78dd1bc07..55bad0c88ddb5d970a84b5d200ccb8fc499a9aed 100644 GIT binary patch literal 39 ucmZQbEY4+QU|?WmWlUgTtYcdqdw#CoWZ+_FWMyD-;N}JZFp>hF literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iO+a$u_Gmg43H06C}w5dZ)H diff --git a/tests/gen/block.130.wasm b/tests/gen/block.130.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ccf092f4a374008a34666dd9abb2b289fcfd3aa8 GIT binary patch literal 42 xcmZQbEY4+QU|?WmWlUgTtYv0mWZ)8I6lP$mWvX>zCoWZ>dv|N#&B)2X|N#&B)2X delta 13 UcmY$8nIOW!&dAEZRLji`01P?-ivR!s diff --git a/tests/gen/block.144.wasm b/tests/gen/block.144.wasm new file mode 100644 index 0000000000000000000000000000000000000000..55642d59533f53de7d00d7e4485add76efe7fb66 GIT binary patch literal 32 ncmZQbEY4+QU|?WmWlUgTtYKziWZ>dvCoWZ>dvCoWZ>dqCoWZ>dwCoWZ)8J6l7p>Z~=+}fsz9c1NR(m09b1T1poj5 literal 0 HcmV?d00001 diff --git a/tests/gen/block.149.wasm b/tests/gen/block.149.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7dd84908f5586a00e3c837817a4c3d5fea976065 GIT binary patch literal 33 ocmZQbEY4+QU|?WmWlUgTtYcdqdwZ~=+}fsz9c1NR(m09a831ONa4 literal 0 HcmV?d00001 diff --git a/tests/gen/block.152.wasm b/tests/gen/block.152.wasm new file mode 100644 index 0000000000000000000000000000000000000000..188d4b3af978027ac8e7fa37300883adb8aca8d0 GIT binary patch literal 33 ocmZQbEY4+QU|?WmWlUgTtYv0mWZ>dqdqZ~=+}fsz9c1NR(m09ZE!0{{R3 literal 0 HcmV?d00001 diff --git a/tests/gen/block.155.wasm b/tests/gen/block.155.wasm new file mode 100644 index 0000000000000000000000000000000000000000..80fcded85588725210e692b04dc01d436c92745e GIT binary patch literal 33 ocmZQbEY4+QU|?WmWlUgTtYKziWZ>dqxhWB>pF literal 0 HcmV?d00001 diff --git a/tests/gen/block.156.wasm b/tests/gen/block.156.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9a4e7f399402d7cf16bfc0b98cad5ee78dd1bc07 GIT binary patch literal 33 ocmZQbEY4+QU|?WmWlUgTtYKziWZ>dqdwCoWZ>ds02;$h&<;syXn%>%gr literal 0 HcmV?d00001 diff --git a/tests/gen/block.159.wasm b/tests/gen/block.159.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f2cb82dab4c3181f496132ea4d052542c78c7362 GIT binary patch literal 32 ncmZQbEY4+QU|?Y6U`k+MNMNjIU}j=u;NoCpV_;&G;^qbbKNbSu literal 0 HcmV?d00001 diff --git a/tests/gen/block.16.wasm b/tests/gen/block.16.wasm index 24edec60c60676e58e3bf72a4e97744d8dbb6b53..ac54d79af27b51d3f8599d7c0d1e6b9a8f570236 100644 GIT binary patch literal 28 jcmZQbEY4+QU|?WmWlUgTtYKziWZ+_FWMyD-;N}JZFlYjt literal 29 kcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dpWMg2eXXNGv05mEB;Q#;t diff --git a/tests/gen/block.160.wasm b/tests/gen/block.160.wasm new file mode 100644 index 0000000000000000000000000000000000000000..98fd78b3eb00514499faaf8b07fe0f45330cdb45 GIT binary patch literal 34 pcmZQbEY4+QU|?Y6WJ+LQNMNe3VPIxrWZ>dtWM^Pvl#=4+1^`Vq19|`e literal 0 HcmV?d00001 diff --git a/tests/gen/block.161.wasm b/tests/gen/block.161.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8c02a13b4141a57cdc27a83c6ca3108c7c41c532 GIT binary patch literal 37 rcmZQbEY4+QU|?Y6U`k+MNMNjIU}j=u;NoTEW^e`yGcYkqadQIzPnQEN literal 0 HcmV?d00001 diff --git a/tests/gen/block.162.wasm b/tests/gen/block.162.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3b6a15a8ad1a84af7ade7f869bb605b2cb61691c GIT binary patch literal 39 tcmZQbEY4+QU|?Y6WJ+LQNMNe1XJBSxWZ>dsdqV!Z literal 0 HcmV?d00001 diff --git a/tests/gen/block.165.wasm b/tests/gen/block.165.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cbef245e9bd017ead4ffb86af6f113ed6c4d59ca GIT binary patch literal 40 ucmZQbEY4+QU|?Y6U`k+MNMNjIU}j=u;1XcuV_pF literal 29 kcmZQbEY4+QU|?WmWlUgTtYcdpWMg2eW8~%r05lf@-v9sr diff --git a/tests/gen/block.129.wat b/tests/gen/block.170.wat similarity index 100% rename from tests/gen/block.129.wat rename to tests/gen/block.170.wat diff --git a/tests/gen/block.18.wasm b/tests/gen/block.18.wasm index 74a1d1e5fafc5641c812483e3cc1021f7c8b9239..1d10f55cd816f819e6c0c26bf4ef0b8280a1ab39 100644 GIT binary patch literal 29 kcmZQbEY4+QU|?WmVN76PU}j=u;NoOtXJB%0V&vuq04)>(WdHyG literal 29 kcmZQbEY4+QU|?WmWlUgTtYv0mWZ>dpWMg2eW#r}t05k*w-2eap diff --git a/tests/gen/block.19.wasm b/tests/gen/block.19.wasm index 7769db5821feb46e2f37ced2613819e8bf9da5ba..65f0de50c49e892843c3be2784493ccc8d4f4455 100644 GIT binary patch literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAVqkJ`W?*Qr=jH|gHwObM literal 29 kcmZQbEY4+QU|?WmWlUgTtYKziWZ>dpWMg2eVdUlp05kCd+W-In diff --git a/tests/gen/block.2.wat b/tests/gen/block.2.wat new file mode 100644 index 0000000..2cea0d5 --- /dev/null +++ b/tests/gen/block.2.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (param i32) (type $sig) (result i32))) \ No newline at end of file diff --git a/tests/gen/block.20.wasm b/tests/gen/block.20.wasm index ee1fc7e13ffdd8c400814628dbcba912e2253707..40f30bff2980473b29f1ddf287f58543cef8f1e2 100644 GIT binary patch literal 36 ocmZQbEY4+QU|?WmVN76PU}j=u;1XcuV_CoWZ>dtWM^QicVgh?1^_q<10(CoWZ>dqD>K9)bb! diff --git a/tests/gen/block.23.wasm b/tests/gen/block.23.wasm index d8abff0c8fc9ebe5ec49725157d15bbc7626ae55..b06638b2419d0f5aa7a31b31513f7707c0ccff8a 100644 GIT binary patch delta 13 Ucmb1>nIOW!&dAEZRL9K?01P7miU0rr delta 15 Wcmb1m$eF)aex literal 33 ncmZQbEY4+QU|?WmWlUgTtYcdqdtWM^Qib!6b?1^_qR10MhY diff --git a/tests/gen/block.27.wasm b/tests/gen/block.27.wasm index 4cdec966687b883124c443f4c1232cd706e04781..3157181967265c9190c1e5e1807445428875da72 100644 GIT binary patch literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;NoTEW^iO+a$u_Gmg43H06C}w5dZ)H literal 30 lcmZQbEY4+QU|?WmWlUgTtYv0mWZ>dtWM^QibzdtWM^Qiab)1;1^_q6104VW diff --git a/tests/gen/block.3.wat b/tests/gen/block.3.wat new file mode 100644 index 0000000..2c93308 --- /dev/null +++ b/tests/gen/block.3.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (param i32) (result i32) (type $sig))) \ No newline at end of file diff --git a/tests/gen/block.30.wasm b/tests/gen/block.30.wasm index 2f7de6b7c1e1a87ad338fd7ce5387581214f7cc0..24edec60c60676e58e3bf72a4e97744d8dbb6b53 100644 GIT binary patch literal 29 kcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dpWMg2eXXNGv05mEB;Q#;t literal 30 lcmZQbEY4+QU|?WmWlUgTtYKziWZ>dtWM^Qiabn=+1^_qA10DbX diff --git a/tests/gen/block.31.wasm b/tests/gen/block.31.wasm index e25231dcbb17f17db52bf297bba080f2719f55f0..d6183e305fe54277ce8ad4fbc6643b95929c92a1 100644 GIT binary patch literal 29 kcmZQbEY4+QU|?WmWlUgTtYcdpWMg2eW8~%r05lf@-v9sr literal 33 ncmZQbEY4+QU|?WmWlUgTtYv0mWZ>dqdpWMg2eW#r}t05k*w-2eap literal 32 mcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dvdpWMg2eVdUlp05kCd+W-In literal 32 mcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dvCoWZ>dvCoWZ>dtWM^QicVgh?1^_q<10(dvCoWZ>dqdvCoWZ)8DdvdtWM^Qib7bJ=1^_qm10eta literal 32 mcmZQbEY4+QU|?WmWlUgTtYv0mWZ>dvdqdvdvdtWM^Qib!6b?1^_qR10MhY literal 32 mcmZQbEY4+QU|?WmWlUgTtYKziWZ>dvdtWM^QibzdvdvdtWM^Qiab)1;1^_q6104VW literal 30 lcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dtWM^Qi=V9RH1^_oR0`33+ diff --git a/tests/gen/block.45.wasm b/tests/gen/block.45.wasm index 6af5bc27d53f566098718f19631e0ad9b3be2373..2f7de6b7c1e1a87ad338fd7ce5387581214f7cc0 100644 GIT binary patch literal 30 lcmZQbEY4+QU|?WmWlUgTtYKziWZ>dtWM^Qiabn=+1^_qA10DbX literal 30 lcmZQbEY4+QU|?WmWlUgTtYcdtWM^Qi<6+?D1^_o60_*?) diff --git a/tests/gen/block.46.wasm b/tests/gen/block.46.wasm index 1344682681a5effdba0c93c0370e5e0dc33aab50..e25231dcbb17f17db52bf297bba080f2719f55f0 100644 GIT binary patch delta 18 Xcmb1BoFKx>!^p+JRO8G51l-&J7C!;s delta 15 WcmY$Cn;^o)$;i&YRLjG_%?$t#xdEU6 diff --git a/tests/gen/block.47.wasm b/tests/gen/block.47.wasm index 9c808a1417fb57e1133badc63551271e74bec493..a6fd466abe28de852a4f0eeac8a108ade142e9bf 100644 GIT binary patch literal 31 mcmZQbEY4+QU|?WmV@zORs;_5eVr1arWMpSxVsK>O<^}*i&I2U? literal 30 lcmZQbEY4+QU|?WmWlUgTtYKziWZ>dtWM^Qi;bGwB1^_nn0_Xq$ diff --git a/tests/gen/block.48.wasm b/tests/gen/block.48.wasm index b4bf8db38e670a313ec41fbe0c6a9b10fbb833fb..c4613b4ed2a26cc8bb414c4132bda81159745c1b 100644 GIT binary patch literal 33 ocmZQbEY4+QU|?WmV@zORs;_5eVr1arX5?gWWMpD+Wa8!q07s_-Z2$lO literal 32 ncmZQbEY4+QU|?WmWlUgTtY>CoWZ>dvCoWZ>dvdvpF diff --git a/tests/gen/block.5.wat b/tests/gen/block.5.wat new file mode 100644 index 0000000..8199fe8 --- /dev/null +++ b/tests/gen/block.5.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (result i32) (param i32) (type $sig))) \ No newline at end of file diff --git a/tests/gen/block.50.wasm b/tests/gen/block.50.wasm index 1f25ff96ac9eddf82e68e556636001c60573b147..1a5b7a76fd84aa133b4c08769eec6ea4d737f5fb 100644 GIT binary patch literal 32 mcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dvdsCoWZ>dv|N#&B)2XRKvi)AkEDU024I!^p+JRL{u6;K<0$4FDDV0q_6- diff --git a/tests/gen/block.53.wasm b/tests/gen/block.53.wasm index d5e1b7bd6efbc9f3a41599c7c3084c63e352e759..a2129c39dbaa2d553bbe24e3cf46d74759810bbd 100644 GIT binary patch delta 17 YcmY#Xm>|N#&B)2XRL{V`AkEDU024|9xc~qF delta 18 ZcmY#ToFKx>!^p+JRL97};Kazy4FDDR0q_6- diff --git a/tests/gen/block.54.wasm b/tests/gen/block.54.wasm index a6cb225f099ccd631664ea85324bef6c438354ad..b9bf19a775614e1ffabc3a66afcab6ea7964f34f 100644 GIT binary patch literal 32 mcmZQbEY4+QU|?WmWlUgTtYcdvdwdvdvCoWZ>du1^`9@1A71f diff --git a/tests/gen/block.57.wasm b/tests/gen/block.57.wasm index 3af756ac9d35011d9f1e77f0fbae5273df1616d8..7b1dc5bcb03a430b9acf235e5956e80b6d631e09 100644 GIT binary patch literal 32 mcmZQbEY4+QU|?WmWlUgTtYv0mWZ>dvCoWZ)8DdvCoWZ)8E6k=eicL9n5!3TRD21iD2ZUANj1i1hJ diff --git a/tests/gen/block.59.wasm b/tests/gen/block.59.wasm index d1cb6888f6b8ca5c3f5c360d2b01d3c7fa9ebb3c..fae840d66a03e3b3f8805aee7de1341c82ae5480 100644 GIT binary patch literal 32 mcmZQbEY4+QU|?WmWlUgTtYKziWZ>dvdu(WdHyG diff --git a/tests/gen/block.6.wat b/tests/gen/block.6.wat new file mode 100644 index 0000000..5c65ee8 --- /dev/null +++ b/tests/gen/block.6.wat @@ -0,0 +1 @@ +(func (i32.const 0) (block (result i32) (param i32))) \ No newline at end of file diff --git a/tests/gen/block.60.wasm b/tests/gen/block.60.wasm index ae14b3d9300c5ac30f2bc5571d10ccf92a6007f2..84a5c6f28b6e28e5a7afa2ea7a4b26c293f9555a 100644 GIT binary patch literal 32 mcmZQbEY4+QU|?WmWlUgTtYKziWZ>dvdvtZUAN61h@bI diff --git a/tests/gen/block.62.wasm b/tests/gen/block.62.wasm index 93f2db57ae5598a303d87725c516d25949b8bb4a..42f226c1e7655a1615bf339636e57c4cc4055d5f 100644 GIT binary patch literal 30 lcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dtWM^Qi=V9RH1^_oR0`33+ literal 37 scmZQbEY4+QU|?WmWlUgTtYv0mWZ)8DdtWM^Qi<6+?D1^_o60_*?) literal 37 scmZQbEY4+QU|?WmWlUgTtYv0mWZ)8DCoWZ>dvu;*cL0ZIbF2YYUA0C&j+c>n+a diff --git a/tests/gen/block.68.wasm b/tests/gen/block.68.wasm index 2348ab49997d5ee7ad79a6c816908848589e9717..8c5907f038275a6f435d814a3bdc9741d38c5051 100644 GIT binary patch literal 32 ncmZQbEY4+QU|?WmWlUgTtYcdvCoWZ>dsdsds2W#nOSW?*Qr=V9RH1^`um1PK5D diff --git a/tests/gen/block.71.wasm b/tests/gen/block.71.wasm index d20a14f4d2d8771dfed96a81d50be3898e2e4153..5f2f83d26650bea7a1ae86306fa42a3478a89a4a 100644 GIT binary patch literal 35 qcmZQbEY4+QU|?WmV@zORs;_5eVr1arW#ndHV&GwLWOQWW<^}*wUjuyr literal 42 ucmZQbEY4+QU|?WmWlUgTtYKziWZ)8I6lP$mVdP!^p+JRL{u6;K<0$4FDEI0rUU> delta 21 acmY#XnIIy-&&bQbRPV&d!{7+S+}r>j-2zJh diff --git a/tests/gen/block.73.wasm b/tests/gen/block.73.wasm index 70e9712f08345695833893562ee1a915d4acc525..d5e1b7bd6efbc9f3a41599c7c3084c63e352e759 100644 GIT binary patch literal 33 ocmZQbEY4+QU|?WmWlUgTtYcdqCoWZ)8F6kuSgcV=K{u;*cLWaMGs<^}*>ECf&h diff --git a/tests/gen/block.74.wasm b/tests/gen/block.74.wasm index 2f95f599df7a1ff26a215fb159c03299a0008dca..a6cb225f099ccd631664ea85324bef6c438354ad 100644 GIT binary patch literal 36 rcmZQbEY4+QU|?WmWlUgTtYv0mWZ>dwCoWZ)8G6k%YhcL9n5!3TRD21iC725xQuZ_xzF diff --git a/tests/gen/block.75.wasm b/tests/gen/block.75.wasm index 7e00a88813dea4df0f3eb8b7b86f8700370d4cfa..92af5e48cd51e5facd42b04f244cdcacec49809b 100644 GIT binary patch literal 40 scmZQbEY4+QU|?WmWlUgTtYKziWZ)8J6l7qkVdPdwCoWZ>du1^`9@1A71f literal 39 ucmZQbEY4+QU|?WmWlUgTtYc3j|L9 diff --git a/tests/gen/block.77.wasm b/tests/gen/block.77.wasm index bef742ac9890f68e4e245eb7d19f647e7d41b2b3..3af756ac9d35011d9f1e77f0fbae5273df1616d8 100644 GIT binary patch literal 37 scmZQbEY4+QU|?WmWlUgTtY>CoWZ)8DR*w diff --git a/tests/gen/block.78.wasm b/tests/gen/block.78.wasm index fb05573470396bdb92785b4f12677e2f41124519..0f003dc70630413dd21c856d5d7d6215bbb0ad7d 100644 GIT binary patch literal 41 tcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8E6k=eicL9n5!3TRD21iD2ZUANj1i1hJ literal 39 ucmZQbEY4+QU|?WmWlUgTtYv0mWZ)8F6kuSgb!6mWaAsg=u;*dm<^}*;$OKFP diff --git a/tests/gen/block.79.wasm b/tests/gen/block.79.wasm index 4250b45969a97c4238cce65ce4e1e306f3ab81a6..d1cb6888f6b8ca5c3f5c360d2b01d3c7fa9ebb3c 100644 GIT binary patch literal 34 pcmZQbEY4+QU|?WmWlUgTtYcdutZUAN61h@bI literal 43 vcmZQbEY4+QU|?WmWlUgTtYKziWZ)8G6k%Yhab)CSZ~@8y!3TRD25xQuY@!6i diff --git a/tests/gen/block.82.wasm b/tests/gen/block.82.wasm index 42d83a4b4e64acff46f9ab47c3d5826da650923c..93f2db57ae5598a303d87725c516d25949b8bb4a 100644 GIT binary patch literal 37 scmZQbEY4+QU|?WmWlUgTtYv0mWZ)8Du;*cL0ZIbF2OyK18vuhN1&IIv diff --git a/tests/gen/block.84.wasm b/tests/gen/block.84.wasm index 5c8b4fdf0531ce59629ca413754b3e0c30b91031..6e829263abb2e20ecf2ec3e5534d1d0616e2eb49 100644 GIT binary patch literal 44 wcmZQbEY4+QU|?WmWlUgTtYv0mWZ)8K6lGwlbpeV3!3TRD24@C_277L90Cw30djJ3c literal 36 rcmZQbEY4+QU|?WmVN76PU}j=u;1XcuV_>Rhs&{1MVdUmv;N}JZMo$A) diff --git a/tests/gen/block.85.wasm b/tests/gen/block.85.wasm index 1753a5546e63a74e2c71db4bdbef6c5adc4e8746..21c69f8aa001aa7ef93b2b516ad69526145f8aca 100644 GIT binary patch literal 41 tcmZQbEY4+QU|?WmWlUgTtYKziWZ)8E6k=eib7bUUZ~@8y!3TS8ZUAEd1hoJF literal 36 rcmZQbEY4+QU|?WmVN76PU}j=u;1XcuV_>Rds&iuGVdUmv;N}JZMnVHs diff --git a/tests/gen/block.86.wasm b/tests/gen/block.86.wasm index 6895a38af6e1013542a12fccb812105de3388505..c5977df749516caf87b7b6867f3fd8e277b569a5 100644 GIT binary patch literal 41 tcmZQbEY4+QU|?WmWlUgTtYKziWZ)8E6k=eiabo0QZ~@8y!3TS8ZUAEM1hfDE literal 39 ucmZQbEY4+QU|?WmVN76PU}j=u;1XsOWMHags&!^yXt3vDu;*cL0ZIbF2YYUA0C&j+c>n+a literal 43 vcmZQbEY4+QU|?WmVN76PU}j=u;1XvPWnijds&N4d1HlJ-9!72+25xQuXL1CO diff --git a/tests/gen/block.88.wasm b/tests/gen/block.88.wasm index 58996b863709cb796b060a91127051b97b72bdc2..a6102733eac9b7a566da4ae88d3cd25f76e8e645 100644 GIT binary patch literal 37 scmZQbEY4+QU|?WmV@zORs;_5eVr1arXXIsIVsK>OVQ^%0Wa8!q09DZg!TCoWZ)8DCoWZ>dsE diff --git a/tests/gen/block.91.wasm b/tests/gen/block.91.wasm index a19671066804488d96dea96dfde5524e96ece55f..0e0965c5c37fac7ea8f92e728b8bf561465b43b9 100644 GIT binary patch literal 35 ncmZQbEY4+QU|?WmWlUgTtYcds2W#nOSW?*Qr=V9RH1^`um1PK5D literal 38 tcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8H2XR2r9VdQpX2W2$51VdQpVCoWZ>dwdwCoWZ;ry6lY+nXR3DriUYw1dmct^M@Ak7Zf*dCf(2Xv diff --git a/tests/gen/block.99.wasm b/tests/gen/block.99.wasm index 55bad0c88ddb5d970a84b5d200ccb8fc499a9aed..55a6ab8c661689048342010f10c0e7c74dca12ef 100644 GIT binary patch delta 18 ZcmY#apCHBS%)roK&%@xv$iu+R4FDa30(k%c delta 18 ZcmY#apCHA{ROiUZ!^rK#$iu+R4FDV+0!07- diff --git a/tests/gen/block.json b/tests/gen/block.json index 02c9bb7..4435b82 100644 --- a/tests/gen/block.json +++ b/tests/gen/block.json @@ -1,173 +1,213 @@ {"source_filename": "block.wast", "commands": [ {"type": "module", "line": 3, "filename": "block.0.wasm"}, - {"type": "assert_return", "line": 252, "action": {"type": "invoke", "field": "empty", "args": []}, "expected": []}, - {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "singular", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 254, "action": {"type": "invoke", "field": "multi", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "nested", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "deep", "args": []}, "expected": [{"type": "i32", "value": "150"}]}, - {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": []}, - {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 284, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, - {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "break-bare", "args": []}, "expected": [{"type": "i32", "value": "19"}]}, - {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "break-value", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, - {"type": "assert_return", "line": 300, "action": {"type": "invoke", "field": "break-repeated", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, - {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "break-inner", "args": []}, "expected": [{"type": "i32", "value": "15"}]}, - {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "effects", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_invalid", "line": 306, "filename": "block.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 310, "filename": "block.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 314, "filename": "block.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 318, "filename": "block.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 323, "filename": "block.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 329, "filename": "block.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 335, "filename": "block.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 341, "filename": "block.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 348, "filename": "block.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 354, "filename": "block.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 360, "filename": "block.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 366, "filename": "block.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 373, "filename": "block.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 382, "filename": "block.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 391, "filename": "block.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 401, "filename": "block.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 407, "filename": "block.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 413, "filename": "block.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 419, "filename": "block.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 426, "filename": "block.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 432, "filename": "block.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 438, "filename": "block.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 444, "filename": "block.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 450, "filename": "block.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 456, "filename": "block.25.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 462, "filename": "block.26.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 468, "filename": "block.27.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 474, "filename": "block.28.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 480, "filename": "block.29.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 486, "filename": "block.30.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 492, "filename": "block.31.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 499, "filename": "block.32.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 505, "filename": "block.33.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 511, "filename": "block.34.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 517, "filename": "block.35.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 523, "filename": "block.36.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 529, "filename": "block.37.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 535, "filename": "block.38.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 541, "filename": "block.39.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 547, "filename": "block.40.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 553, "filename": "block.41.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 559, "filename": "block.42.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 565, "filename": "block.43.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 572, "filename": "block.44.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 578, "filename": "block.45.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 584, "filename": "block.46.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 590, "filename": "block.47.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 597, "filename": "block.48.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 603, "filename": "block.49.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 609, "filename": "block.50.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 615, "filename": "block.51.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 622, "filename": "block.52.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 628, "filename": "block.53.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 634, "filename": "block.54.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 640, "filename": "block.55.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 647, "filename": "block.56.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 653, "filename": "block.57.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 659, "filename": "block.58.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 665, "filename": "block.59.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 671, "filename": "block.60.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 677, "filename": "block.61.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 683, "filename": "block.62.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 689, "filename": "block.63.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 695, "filename": "block.64.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 701, "filename": "block.65.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 707, "filename": "block.66.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 713, "filename": "block.67.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 720, "filename": "block.68.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 726, "filename": "block.69.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 732, "filename": "block.70.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 738, "filename": "block.71.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 745, "filename": "block.72.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 751, "filename": "block.73.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 757, "filename": "block.74.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 763, "filename": "block.75.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 769, "filename": "block.76.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 775, "filename": "block.77.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 781, "filename": "block.78.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 787, "filename": "block.79.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 793, "filename": "block.80.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 799, "filename": "block.81.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 805, "filename": "block.82.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 811, "filename": "block.83.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 818, "filename": "block.84.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 824, "filename": "block.85.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 830, "filename": "block.86.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 836, "filename": "block.87.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 843, "filename": "block.88.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 849, "filename": "block.89.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 855, "filename": "block.90.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 861, "filename": "block.91.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 868, "filename": "block.92.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 874, "filename": "block.93.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 880, "filename": "block.94.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 886, "filename": "block.95.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 893, "filename": "block.96.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 901, "filename": "block.97.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 909, "filename": "block.98.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 917, "filename": "block.99.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 925, "filename": "block.100.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 933, "filename": "block.101.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 941, "filename": "block.102.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 949, "filename": "block.103.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 957, "filename": "block.104.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 965, "filename": "block.105.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 973, "filename": "block.106.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 981, "filename": "block.107.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 990, "filename": "block.108.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 996, "filename": "block.109.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1002, "filename": "block.110.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1008, "filename": "block.111.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1015, "filename": "block.112.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1021, "filename": "block.113.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1027, "filename": "block.114.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1033, "filename": "block.115.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1040, "filename": "block.116.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1046, "filename": "block.117.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1052, "filename": "block.118.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1058, "filename": "block.119.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1064, "filename": "block.120.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1070, "filename": "block.121.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1076, "filename": "block.122.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1082, "filename": "block.123.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1088, "filename": "block.124.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1094, "filename": "block.125.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1100, "filename": "block.126.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1106, "filename": "block.127.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_malformed", "line": 1114, "filename": "block.128.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 1118, "filename": "block.129.wat", "text": "mismatching label", "module_type": "text"}]} + {"type": "assert_return", "line": 361, "action": {"type": "invoke", "field": "empty", "args": []}, "expected": []}, + {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "singular", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "nested", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "deep", "args": []}, "expected": [{"type": "i32", "value": "150"}]}, + {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": []}, + {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 388, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 396, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 398, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, + {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 412, "action": {"type": "invoke", "field": "break-bare", "args": []}, "expected": [{"type": "i32", "value": "19"}]}, + {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "break-value", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, + {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "break-repeated", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, + {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "break-inner", "args": []}, "expected": [{"type": "i32", "value": "15"}]}, + {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "effects", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_malformed", "line": 438, "filename": "block.1.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 445, "filename": "block.2.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 452, "filename": "block.3.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 459, "filename": "block.4.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 466, "filename": "block.5.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 473, "filename": "block.6.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 480, "filename": "block.7.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 484, "filename": "block.8.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 491, "filename": "block.9.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 498, "filename": "block.10.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 505, "filename": "block.11.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_invalid", "line": 513, "filename": "block.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 521, "filename": "block.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 525, "filename": "block.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 529, "filename": "block.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 533, "filename": "block.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 538, "filename": "block.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 544, "filename": "block.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 550, "filename": "block.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 556, "filename": "block.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 562, "filename": "block.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 568, "filename": "block.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 574, "filename": "block.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 580, "filename": "block.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 586, "filename": "block.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 592, "filename": "block.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 599, "filename": "block.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 608, "filename": "block.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 617, "filename": "block.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 627, "filename": "block.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 633, "filename": "block.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 639, "filename": "block.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 645, "filename": "block.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 651, "filename": "block.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 657, "filename": "block.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 663, "filename": "block.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 669, "filename": "block.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 675, "filename": "block.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 681, "filename": "block.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 687, "filename": "block.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 693, "filename": "block.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 699, "filename": "block.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 705, "filename": "block.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 711, "filename": "block.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 717, "filename": "block.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 723, "filename": "block.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 729, "filename": "block.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 735, "filename": "block.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 741, "filename": "block.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 748, "filename": "block.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 754, "filename": "block.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 760, "filename": "block.52.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 766, "filename": "block.53.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 772, "filename": "block.54.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 778, "filename": "block.55.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 784, "filename": "block.56.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 790, "filename": "block.57.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 796, "filename": "block.58.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 802, "filename": "block.59.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 808, "filename": "block.60.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 814, "filename": "block.61.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 821, "filename": "block.62.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 827, "filename": "block.63.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 833, "filename": "block.64.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 839, "filename": "block.65.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 845, "filename": "block.66.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 852, "filename": "block.67.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 858, "filename": "block.68.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 864, "filename": "block.69.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 870, "filename": "block.70.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 876, "filename": "block.71.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 883, "filename": "block.72.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 889, "filename": "block.73.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 895, "filename": "block.74.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 901, "filename": "block.75.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 908, "filename": "block.76.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 914, "filename": "block.77.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 920, "filename": "block.78.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 926, "filename": "block.79.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 932, "filename": "block.80.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 938, "filename": "block.81.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 944, "filename": "block.82.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 950, "filename": "block.83.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 956, "filename": "block.84.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 962, "filename": "block.85.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 968, "filename": "block.86.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 974, "filename": "block.87.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 980, "filename": "block.88.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 986, "filename": "block.89.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 993, "filename": "block.90.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 999, "filename": "block.91.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1005, "filename": "block.92.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1011, "filename": "block.93.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1017, "filename": "block.94.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1024, "filename": "block.95.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1030, "filename": "block.96.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1036, "filename": "block.97.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1042, "filename": "block.98.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1048, "filename": "block.99.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1054, "filename": "block.100.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1060, "filename": "block.101.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1066, "filename": "block.102.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1072, "filename": "block.103.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1078, "filename": "block.104.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1084, "filename": "block.105.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1090, "filename": "block.106.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1096, "filename": "block.107.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1103, "filename": "block.108.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1109, "filename": "block.109.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1115, "filename": "block.110.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1121, "filename": "block.111.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1127, "filename": "block.112.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1134, "filename": "block.113.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1140, "filename": "block.114.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1146, "filename": "block.115.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1152, "filename": "block.116.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1158, "filename": "block.117.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1165, "filename": "block.118.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1171, "filename": "block.119.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1177, "filename": "block.120.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1183, "filename": "block.121.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1189, "filename": "block.122.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1196, "filename": "block.123.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1204, "filename": "block.124.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1212, "filename": "block.125.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1220, "filename": "block.126.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1228, "filename": "block.127.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1236, "filename": "block.128.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1244, "filename": "block.129.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1252, "filename": "block.130.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1260, "filename": "block.131.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1268, "filename": "block.132.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1276, "filename": "block.133.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1284, "filename": "block.134.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1292, "filename": "block.135.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1301, "filename": "block.136.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1307, "filename": "block.137.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1313, "filename": "block.138.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1319, "filename": "block.139.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1325, "filename": "block.140.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1332, "filename": "block.141.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1338, "filename": "block.142.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1344, "filename": "block.143.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1350, "filename": "block.144.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1356, "filename": "block.145.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1363, "filename": "block.146.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1369, "filename": "block.147.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1375, "filename": "block.148.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1381, "filename": "block.149.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1387, "filename": "block.150.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1393, "filename": "block.151.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1399, "filename": "block.152.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1405, "filename": "block.153.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1411, "filename": "block.154.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1417, "filename": "block.155.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1423, "filename": "block.156.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1429, "filename": "block.157.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1435, "filename": "block.158.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1442, "filename": "block.159.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1448, "filename": "block.160.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1454, "filename": "block.161.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1460, "filename": "block.162.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1466, "filename": "block.163.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1472, "filename": "block.164.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1478, "filename": "block.165.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1484, "filename": "block.166.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1491, "filename": "block.167.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 1495, "filename": "block.168.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 1501, "filename": "block.169.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1505, "filename": "block.170.wat", "text": "mismatching label", "module_type": "text"}]} diff --git a/tests/gen/br.json b/tests/gen/br.json index bc436ee..72935fe 100644 --- a/tests/gen/br.json +++ b/tests/gen/br.json @@ -1,97 +1,97 @@ {"source_filename": "br.wast", "commands": [ {"type": "module", "line": 3, "filename": "br.0.wasm"}, - {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 364, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "type-i32-i32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "type-i64-i64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "type-f32-f32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "type-f64-f64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "type-i32-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "type-i64-value", "args": []}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "type-f32-value", "args": []}, "expected": [{"type": "f32", "value": "1077936128"}]}, - {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "type-f64-value", "args": []}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, - {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "expected": []}, - {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 389, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "expected": []}, - {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "expected": []}, - {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "10"}]}, - {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, - {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 407, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 408, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 410, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 411, "action": {"type": "invoke", "field": "as-select-all", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, - {"type": "assert_return", "line": 414, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "expected": [{"type": "i32", "value": "13"}]}, - {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "expected": [{"type": "i32", "value": "14"}]}, - {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "as-call-all", "args": []}, "expected": [{"type": "i32", "value": "15"}]}, - {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "21"}]}, - {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 421, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "23"}]}, - {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "as-call_indirect-all", "args": []}, "expected": [{"type": "i32", "value": "24"}]}, - {"type": "assert_return", "line": 424, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 425, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 428, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "expected": [{"type": "f32", "value": "1071225242"}]}, - {"type": "assert_return", "line": 429, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "expected": [{"type": "i64", "value": "30"}]}, - {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "expected": [{"type": "i32", "value": "30"}]}, - {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, - {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "as-store-both", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 434, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "as-storeN-both", "args": []}, "expected": [{"type": "i32", "value": "34"}]}, - {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "1079613850"}]}, - {"type": "assert_return", "line": 440, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i64", "value": "45"}]}, - {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "as-binary-both", "args": []}, "expected": [{"type": "i32", "value": "46"}]}, - {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 446, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "43"}]}, - {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, - {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "as-compare-both", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i32", "value": "41"}]}, - {"type": "assert_return", "line": 452, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "40"}]}, - {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "nested-block-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "nested-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "nested-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 458, "action": {"type": "invoke", "field": "nested-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_invalid", "line": 462, "filename": "br.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 469, "filename": "br.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 475, "filename": "br.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 481, "filename": "br.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 488, "filename": "br.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 497, "filename": "br.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 506, "filename": "br.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 515, "filename": "br.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 526, "filename": "br.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 537, "filename": "br.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 549, "filename": "br.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 565, "filename": "br.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 577, "filename": "br.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 589, "filename": "br.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 601, "filename": "br.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 613, "filename": "br.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 625, "filename": "br.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 638, "filename": "br.18.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 642, "filename": "br.19.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 646, "filename": "br.20.wasm", "text": "unknown label", "module_type": "binary"}]} + {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "type-i32-i32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "type-i64-i64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "type-f32-f32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "type-f64-f64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "type-i32-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "type-i64-value", "args": []}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "type-f32-value", "args": []}, "expected": [{"type": "f32", "value": "1077936128"}]}, + {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "type-f64-value", "args": []}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, + {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "expected": []}, + {"type": "assert_return", "line": 392, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 396, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "expected": []}, + {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "expected": []}, + {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "10"}]}, + {"type": "assert_return", "line": 407, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, + {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 414, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 417, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 421, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 423, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 424, "action": {"type": "invoke", "field": "as-select-all", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, + {"type": "assert_return", "line": 427, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "expected": [{"type": "i32", "value": "13"}]}, + {"type": "assert_return", "line": 428, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "expected": [{"type": "i32", "value": "14"}]}, + {"type": "assert_return", "line": 429, "action": {"type": "invoke", "field": "as-call-all", "args": []}, "expected": [{"type": "i32", "value": "15"}]}, + {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "21"}]}, + {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 434, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "23"}]}, + {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "as-call_indirect-all", "args": []}, "expected": [{"type": "i32", "value": "24"}]}, + {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 439, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "expected": [{"type": "f32", "value": "1071225242"}]}, + {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "expected": [{"type": "i64", "value": "30"}]}, + {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "expected": [{"type": "i32", "value": "30"}]}, + {"type": "assert_return", "line": 445, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, + {"type": "assert_return", "line": 446, "action": {"type": "invoke", "field": "as-store-both", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "as-storeN-both", "args": []}, "expected": [{"type": "i32", "value": "34"}]}, + {"type": "assert_return", "line": 451, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "1079613850"}]}, + {"type": "assert_return", "line": 453, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i64", "value": "45"}]}, + {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "as-binary-both", "args": []}, "expected": [{"type": "i32", "value": "46"}]}, + {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "43"}]}, + {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "as-compare-both", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 463, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i32", "value": "41"}]}, + {"type": "assert_return", "line": 465, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "40"}]}, + {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "nested-block-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "nested-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 469, "action": {"type": "invoke", "field": "nested-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 470, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 471, "action": {"type": "invoke", "field": "nested-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 472, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_invalid", "line": 475, "filename": "br.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 482, "filename": "br.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 488, "filename": "br.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 494, "filename": "br.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 501, "filename": "br.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 510, "filename": "br.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 519, "filename": "br.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 528, "filename": "br.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 539, "filename": "br.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 550, "filename": "br.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 562, "filename": "br.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 578, "filename": "br.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 590, "filename": "br.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 602, "filename": "br.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 614, "filename": "br.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 626, "filename": "br.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 638, "filename": "br.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 651, "filename": "br.18.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 655, "filename": "br.19.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 659, "filename": "br.20.wasm", "text": "unknown label", "module_type": "binary"}]} diff --git a/tests/gen/br_table.0.wasm b/tests/gen/br_table.0.wasm index b26491fcc66e4efe3eded403b1d3872360a88120..4460c12021ad1f1a65542d412ed8ba1ab9099e12 100644 GIT binary patch delta 40 wcmbPzjj??S;|6C|rh}cEU0DMddDhf1FgY+eC@}C%t=qhjP0W7t>9hbA02Sa36951J delta 47 zcmV+~0MP%3lmVO80kA^_0@cg2MFmg+4!^(w00KY)Kp+4Pr@#TTp#~N|v#$mcA+xtd FPy~cF4{QJc diff --git a/tests/gen/br_table.json b/tests/gen/br_table.json index 9019b89..8504756 100644 --- a/tests/gen/br_table.json +++ b/tests/gen/br_table.json @@ -1,173 +1,173 @@ {"source_filename": "br_table.wast", "commands": [ - {"type": "module", "line": 4, "filename": "br_table.0.wasm"}, - {"type": "assert_return", "line": 1248, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1249, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1250, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1251, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1253, "action": {"type": "invoke", "field": "type-i32-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1254, "action": {"type": "invoke", "field": "type-i64-value", "args": []}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 1255, "action": {"type": "invoke", "field": "type-f32-value", "args": []}, "expected": [{"type": "f32", "value": "1077936128"}]}, - {"type": "assert_return", "line": 1256, "action": {"type": "invoke", "field": "type-f64-value", "args": []}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, - {"type": "assert_return", "line": 1258, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1259, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1260, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1261, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1262, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1263, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1265, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1266, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1267, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1268, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1269, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1270, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1272, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1273, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1274, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1275, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1276, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1277, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1279, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 1280, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1281, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1282, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1283, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1284, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1286, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "103"}]}, - {"type": "assert_return", "line": 1287, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "102"}]}, - {"type": "assert_return", "line": 1288, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "101"}]}, - {"type": "assert_return", "line": 1289, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "100"}]}, - {"type": "assert_return", "line": 1290, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1291, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1292, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1293, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1294, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1295, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1297, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "213"}]}, - {"type": "assert_return", "line": 1298, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "212"}]}, - {"type": "assert_return", "line": 1299, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "211"}]}, - {"type": "assert_return", "line": 1300, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "210"}]}, - {"type": "assert_return", "line": 1301, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1302, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1303, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1304, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1305, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1306, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1308, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1309, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1310, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "100"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1311, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "101"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1312, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "10000"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1313, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "10001"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1314, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1000000"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1315, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1000001"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1317, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1318, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1319, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1320, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 1322, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 1323, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 1324, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 1326, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1328, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1329, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1330, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1332, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1333, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "10"}]}, - {"type": "assert_return", "line": 1334, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 1336, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, - {"type": "assert_return", "line": 1338, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 1339, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 1340, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 1341, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 1342, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 1344, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 1345, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 1346, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 1347, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 1348, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 1350, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, - {"type": "assert_return", "line": 1351, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "expected": [{"type": "i32", "value": "13"}]}, - {"type": "assert_return", "line": 1352, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "expected": [{"type": "i32", "value": "14"}]}, - {"type": "assert_return", "line": 1354, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1355, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "21"}]}, - {"type": "assert_return", "line": 1356, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1357, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "expected": [{"type": "i32", "value": "23"}]}, - {"type": "assert_return", "line": 1359, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1360, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1361, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1363, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "expected": [{"type": "f32", "value": "1071225242"}]}, - {"type": "assert_return", "line": 1364, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "expected": [{"type": "i64", "value": "30"}]}, - {"type": "assert_return", "line": 1366, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "expected": [{"type": "i32", "value": "30"}]}, - {"type": "assert_return", "line": 1367, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, - {"type": "assert_return", "line": 1368, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 1369, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1371, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "1079613850"}]}, - {"type": "assert_return", "line": 1373, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 1374, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i64", "value": "45"}]}, - {"type": "assert_return", "line": 1376, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 1378, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "43"}]}, - {"type": "assert_return", "line": 1379, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, - {"type": "assert_return", "line": 1381, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i32", "value": "41"}]}, - {"type": "assert_return", "line": 1383, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "40"}]}, - {"type": "assert_return", "line": 1385, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "19"}]}, - {"type": "assert_return", "line": 1386, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1387, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "16"}]}, - {"type": "assert_return", "line": 1388, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "16"}]}, - {"type": "assert_return", "line": 1389, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "16"}]}, - {"type": "assert_return", "line": 1390, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "100000"}]}, "expected": [{"type": "i32", "value": "16"}]}, - {"type": "assert_return", "line": 1392, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1393, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1394, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1395, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1396, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "4294967292"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1397, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "10213210"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1399, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1400, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1401, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1402, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1403, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "4294967287"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1404, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "999999"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1406, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1407, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1408, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1409, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1410, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "4293967296"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1411, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "9423975"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1413, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1414, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1415, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1416, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1417, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "4294967287"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1418, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "999999"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1420, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1421, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1422, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1423, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1424, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "4293967296"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1425, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "9423975"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1427, "action": {"type": "invoke", "field": "nested-br_table-loop-block", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_invalid", "line": 1430, "filename": "br_table.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1437, "filename": "br_table.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1444, "filename": "br_table.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1450, "filename": "br_table.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1458, "filename": "br_table.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1469, "filename": "br_table.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1480, "filename": "br_table.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1486, "filename": "br_table.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1492, "filename": "br_table.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1498, "filename": "br_table.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1504, "filename": "br_table.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1513, "filename": "br_table.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1520, "filename": "br_table.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1532, "filename": "br_table.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1544, "filename": "br_table.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1555, "filename": "br_table.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1567, "filename": "br_table.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1579, "filename": "br_table.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1593, "filename": "br_table.19.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1599, "filename": "br_table.20.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1605, "filename": "br_table.21.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1612, "filename": "br_table.22.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1618, "filename": "br_table.23.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1624, "filename": "br_table.24.wasm", "text": "unknown label", "module_type": "binary"}]} + {"type": "module", "line": 3, "filename": "br_table.0.wasm"}, + {"type": "assert_return", "line": 1007, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1008, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1009, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1010, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1012, "action": {"type": "invoke", "field": "type-i32-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1013, "action": {"type": "invoke", "field": "type-i64-value", "args": []}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 1014, "action": {"type": "invoke", "field": "type-f32-value", "args": []}, "expected": [{"type": "f32", "value": "1077936128"}]}, + {"type": "assert_return", "line": 1015, "action": {"type": "invoke", "field": "type-f64-value", "args": []}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, + {"type": "assert_return", "line": 1017, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1018, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1019, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1020, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1021, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1022, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1024, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1025, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1026, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1027, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1028, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1029, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1031, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1032, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1033, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1034, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1035, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1036, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1038, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 1039, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1040, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1041, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1042, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1043, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1045, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "103"}]}, + {"type": "assert_return", "line": 1046, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "102"}]}, + {"type": "assert_return", "line": 1047, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "101"}]}, + {"type": "assert_return", "line": 1048, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "100"}]}, + {"type": "assert_return", "line": 1049, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1050, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1051, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1052, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1053, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1054, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1056, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "213"}]}, + {"type": "assert_return", "line": 1057, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "212"}]}, + {"type": "assert_return", "line": 1058, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "211"}]}, + {"type": "assert_return", "line": 1059, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "210"}]}, + {"type": "assert_return", "line": 1060, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1061, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1062, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1063, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1064, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1065, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1067, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1068, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1069, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "100"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1070, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "101"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1071, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "10000"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1072, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "10001"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1073, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1000000"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1074, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1000001"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1076, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1077, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1078, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1079, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 1081, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 1082, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 1083, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 1085, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1087, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1088, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1089, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1091, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1092, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "10"}]}, + {"type": "assert_return", "line": 1093, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 1095, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, + {"type": "assert_return", "line": 1097, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 1098, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 1099, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 1100, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 1101, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 1103, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 1104, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 1105, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 1106, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 1107, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 1109, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, + {"type": "assert_return", "line": 1110, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "expected": [{"type": "i32", "value": "13"}]}, + {"type": "assert_return", "line": 1111, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "expected": [{"type": "i32", "value": "14"}]}, + {"type": "assert_return", "line": 1113, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1114, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "21"}]}, + {"type": "assert_return", "line": 1115, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1116, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "expected": [{"type": "i32", "value": "23"}]}, + {"type": "assert_return", "line": 1118, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1119, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1120, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1122, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "expected": [{"type": "f32", "value": "1071225242"}]}, + {"type": "assert_return", "line": 1123, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "expected": [{"type": "i64", "value": "30"}]}, + {"type": "assert_return", "line": 1125, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "expected": [{"type": "i32", "value": "30"}]}, + {"type": "assert_return", "line": 1126, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, + {"type": "assert_return", "line": 1127, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 1128, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1130, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "1079613850"}]}, + {"type": "assert_return", "line": 1132, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 1133, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i64", "value": "45"}]}, + {"type": "assert_return", "line": 1135, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 1137, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "43"}]}, + {"type": "assert_return", "line": 1138, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_return", "line": 1140, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i32", "value": "41"}]}, + {"type": "assert_return", "line": 1142, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "40"}]}, + {"type": "assert_return", "line": 1144, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "19"}]}, + {"type": "assert_return", "line": 1145, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1146, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "16"}]}, + {"type": "assert_return", "line": 1147, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "16"}]}, + {"type": "assert_return", "line": 1148, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "16"}]}, + {"type": "assert_return", "line": 1149, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "100000"}]}, "expected": [{"type": "i32", "value": "16"}]}, + {"type": "assert_return", "line": 1151, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1152, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1153, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1154, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1155, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "4294967292"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1156, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "10213210"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1158, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1159, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1160, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1161, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1162, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "4294967287"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1163, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "999999"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1165, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1166, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1167, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1168, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1169, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "4293967296"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1170, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "9423975"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1172, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1173, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1174, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1175, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1176, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "4294967287"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1177, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "999999"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1179, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1180, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1181, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1182, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1183, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "4293967296"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1184, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "9423975"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1186, "action": {"type": "invoke", "field": "nested-br_table-loop-block", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_invalid", "line": 1194, "filename": "br_table.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1201, "filename": "br_table.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1208, "filename": "br_table.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1214, "filename": "br_table.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1222, "filename": "br_table.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1233, "filename": "br_table.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1244, "filename": "br_table.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1250, "filename": "br_table.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1256, "filename": "br_table.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1262, "filename": "br_table.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1268, "filename": "br_table.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1277, "filename": "br_table.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1284, "filename": "br_table.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1296, "filename": "br_table.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1308, "filename": "br_table.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1319, "filename": "br_table.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1331, "filename": "br_table.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1343, "filename": "br_table.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1357, "filename": "br_table.19.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1363, "filename": "br_table.20.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1369, "filename": "br_table.21.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1376, "filename": "br_table.22.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1382, "filename": "br_table.23.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1388, "filename": "br_table.24.wasm", "text": "unknown label", "module_type": "binary"}]} diff --git a/tests/gen/call.json b/tests/gen/call.json index 15a7432..23a4cbc 100644 --- a/tests/gen/call.json +++ b/tests/gen/call.json @@ -1,85 +1,85 @@ {"source_filename": "call.wast", "commands": [ {"type": "module", "line": 3, "filename": "call.0.wasm"}, - {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, - {"type": "assert_return", "line": 242, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, - {"type": "assert_return", "line": 243, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": [{"type": "f64", "value": "4660882566700597248"}]}, - {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "type-first-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "type-first-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, - {"type": "assert_return", "line": 247, "action": {"type": "invoke", "field": "type-first-f32", "args": []}, "expected": [{"type": "f32", "value": "1068037571"}]}, - {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "type-first-f64", "args": []}, "expected": [{"type": "f64", "value": "4610064722561534525"}]}, - {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "type-second-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 251, "action": {"type": "invoke", "field": "type-second-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, - {"type": "assert_return", "line": 252, "action": {"type": "invoke", "field": "type-second-f32", "args": []}, "expected": [{"type": "f32", "value": "1107296256"}]}, - {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "type-second-f64", "args": []}, "expected": [{"type": "f64", "value": "4634211053438658150"}]}, - {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 257, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "0"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "1"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "5"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "25"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, - {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "10946"}]}, - {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "100"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "77"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 279, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "200"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "77"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_exhaustion", "line": 282, "action": {"type": "invoke", "field": "runaway", "args": []}, "text": "call stack exhausted", "expected": []}, - {"type": "assert_exhaustion", "line": 283, "action": {"type": "invoke", "field": "mutual-runaway", "args": []}, "text": "call stack exhausted", "expected": []}, - {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_trap", "line": 299, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 302, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 309, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "return-from-long-argument-list", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "42"}]}, - {"type": "assert_invalid", "line": 326, "filename": "call.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 333, "filename": "call.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 341, "filename": "call.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 348, "filename": "call.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 355, "filename": "call.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 362, "filename": "call.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 370, "filename": "call.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 377, "filename": "call.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 384, "filename": "call.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 391, "filename": "call.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 399, "filename": "call.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 408, "filename": "call.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 417, "filename": "call.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 426, "filename": "call.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 435, "filename": "call.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 444, "filename": "call.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 457, "filename": "call.17.wasm", "text": "unknown function", "module_type": "binary"}, - {"type": "assert_invalid", "line": 461, "filename": "call.18.wasm", "text": "unknown function", "module_type": "binary"}]} + {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, + {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, + {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": [{"type": "f64", "value": "4660882566700597248"}]}, + {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "type-first-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "type-first-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, + {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "type-first-f32", "args": []}, "expected": [{"type": "f32", "value": "1068037571"}]}, + {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "type-first-f64", "args": []}, "expected": [{"type": "f64", "value": "4610064722561534525"}]}, + {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "type-second-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 302, "action": {"type": "invoke", "field": "type-second-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, + {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "type-second-f32", "args": []}, "expected": [{"type": "f32", "value": "1107296256"}]}, + {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "type-second-f64", "args": []}, "expected": [{"type": "f64", "value": "4634211053438658150"}]}, + {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "0"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "1"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 322, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "5"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 324, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "25"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 328, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 329, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 330, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 331, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, + {"type": "assert_return", "line": 332, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "10946"}]}, + {"type": "assert_return", "line": 334, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 335, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 336, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "100"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 337, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "77"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 338, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 339, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 340, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "200"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 341, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "77"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_exhaustion", "line": 343, "action": {"type": "invoke", "field": "runaway", "args": []}, "text": "call stack exhausted", "expected": []}, + {"type": "assert_exhaustion", "line": 344, "action": {"type": "invoke", "field": "mutual-runaway", "args": []}, "text": "call stack exhausted", "expected": []}, + {"type": "assert_return", "line": 346, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 347, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 348, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 350, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 352, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 353, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 355, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 356, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 358, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 359, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_trap", "line": 360, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "undefined element", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 371, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 382, "action": {"type": "invoke", "field": "return-from-long-argument-list", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_invalid", "line": 387, "filename": "call.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 394, "filename": "call.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 402, "filename": "call.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 409, "filename": "call.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 416, "filename": "call.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 423, "filename": "call.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 431, "filename": "call.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 438, "filename": "call.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 445, "filename": "call.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 452, "filename": "call.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 460, "filename": "call.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 469, "filename": "call.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 478, "filename": "call.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 487, "filename": "call.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 496, "filename": "call.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 505, "filename": "call.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 518, "filename": "call.17.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 522, "filename": "call.18.wasm", "text": "unknown function", "module_type": "binary"}]} diff --git a/tests/gen/call_indirect.34.wasm b/tests/gen/call_indirect.34.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c9ac62644675f30dfda5ceb602af7be7661a770d GIT binary patch literal 142 zcmYL>ISzm@5Cg{$ab(j_=X0TwM2Y%^ZVHv4@F&@v=Q=oy23e?7@LUC19c d!3H)L$kxK_bQOLt+b!SFLtWLWXui~9F1;}b1=|1s literal 0 HcmV?d00001 diff --git a/tests/gen/call_indirect.json b/tests/gen/call_indirect.json index 8039db9..a38be46 100644 --- a/tests/gen/call_indirect.json +++ b/tests/gen/call_indirect.json @@ -1,154 +1,155 @@ {"source_filename": "call_indirect.wast", "commands": [ {"type": "module", "line": 3, "filename": "call_indirect.0.wasm"}, - {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, - {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, - {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": [{"type": "f64", "value": "4660882566700597248"}]}, - {"type": "assert_return", "line": 452, "action": {"type": "invoke", "field": "type-index", "args": []}, "expected": [{"type": "i64", "value": "100"}]}, - {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "type-first-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "type-first-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, - {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "type-first-f32", "args": []}, "expected": [{"type": "f32", "value": "1068037571"}]}, - {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "type-first-f64", "args": []}, "expected": [{"type": "f64", "value": "4610064722561534525"}]}, - {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "type-second-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "type-second-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, - {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "type-second-f32", "args": []}, "expected": [{"type": "f32", "value": "1107296256"}]}, - {"type": "assert_return", "line": 462, "action": {"type": "invoke", "field": "type-second-f64", "args": []}, "expected": [{"type": "f64", "value": "4634211053438658150"}]}, - {"type": "assert_return", "line": 464, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "5"}, {"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 465, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "5"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "5"}]}, - {"type": "assert_return", "line": 466, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "12"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "13"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, - {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "20"}, {"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_trap", "line": 469, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "0"}, {"type": "i64", "value": "2"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 470, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "15"}, {"type": "i64", "value": "2"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 471, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "29"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 472, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "4294967295"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 473, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "1213432423"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, - {"type": "assert_return", "line": 475, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i64", "value": "9"}]}, - {"type": "assert_return", "line": 476, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i64", "value": "362880"}]}, - {"type": "assert_return", "line": 477, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i64", "value": "55"}]}, - {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i64", "value": "9"}]}, - {"type": "assert_trap", "line": 479, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "11"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 480, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "22"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, - {"type": "assert_return", "line": 482, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 483, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "362880"}]}, - {"type": "assert_return", "line": 484, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "55"}]}, - {"type": "assert_return", "line": 485, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_trap", "line": 486, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "9"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 487, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "21"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 489, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "f32", "value": "1091567616"}]}, - {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f32", "value": "1219571712"}]}, - {"type": "assert_return", "line": 491, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "f32", "value": "1113325568"}]}, - {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "f32", "value": "1091567616"}]}, - {"type": "assert_trap", "line": 493, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "8"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f32"}]}, - {"type": "assert_trap", "line": 494, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "19"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f32"}]}, - {"type": "assert_return", "line": 496, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, - {"type": "assert_return", "line": 497, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "f64", "value": "4689977843394805760"}]}, - {"type": "assert_return", "line": 498, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "f64", "value": "4632937379169042432"}]}, - {"type": "assert_return", "line": 499, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, - {"type": "assert_trap", "line": 500, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "10"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f64"}]}, - {"type": "assert_trap", "line": 501, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "18"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f64"}]}, - {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 506, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 508, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 509, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 510, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "120"}]}, - {"type": "assert_return", "line": 511, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "3628800"}]}, - {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 515, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1123024896"}]}, - {"type": "assert_return", "line": 516, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1092616192"}]}, "expected": [{"type": "f32", "value": "1247640576"}]}, - {"type": "assert_return", "line": 518, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 519, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4638144666238189568"}]}, - {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4621819117588971520"}]}, "expected": [{"type": "f64", "value": "4705047200009289728"}]}, - {"type": "assert_return", "line": 523, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 524, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 525, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 526, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, - {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "10946"}]}, - {"type": "assert_return", "line": 529, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 530, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 531, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 532, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 533, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "10946"}]}, - {"type": "assert_return", "line": 535, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 536, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 537, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 538, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1090519040"}]}, - {"type": "assert_return", "line": 539, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1101004800"}]}, "expected": [{"type": "f32", "value": "1177225216"}]}, - {"type": "assert_return", "line": 541, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 542, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 543, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 544, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4620693217682128896"}]}, - {"type": "assert_return", "line": 545, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4626322717216342016"}]}, "expected": [{"type": "f64", "value": "4667243241467281408"}]}, - {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 549, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "100"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 550, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "77"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 553, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "200"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 554, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "77"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_exhaustion", "line": 556, "action": {"type": "invoke", "field": "runaway", "args": []}, "text": "call stack exhausted", "expected": []}, - {"type": "assert_exhaustion", "line": 557, "action": {"type": "invoke", "field": "mutual-runaway", "args": []}, "text": "call stack exhausted", "expected": []}, - {"type": "assert_return", "line": 559, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 560, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 563, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, - {"type": "assert_return", "line": 566, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, - {"type": "assert_return", "line": 569, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 572, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 576, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 578, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 583, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 584, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_malformed", "line": 594, "filename": "call_indirect.1.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 606, "filename": "call_indirect.2.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 618, "filename": "call_indirect.3.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 630, "filename": "call_indirect.4.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 642, "filename": "call_indirect.5.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 654, "filename": "call_indirect.6.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 664, "filename": "call_indirect.7.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 671, "filename": "call_indirect.8.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 681, "filename": "call_indirect.9.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 691, "filename": "call_indirect.10.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 701, "filename": "call_indirect.11.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_invalid", "line": 716, "filename": "call_indirect.12.wasm", "text": "unknown table", "module_type": "binary"}, - {"type": "assert_invalid", "line": 724, "filename": "call_indirect.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 732, "filename": "call_indirect.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 741, "filename": "call_indirect.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 749, "filename": "call_indirect.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 757, "filename": "call_indirect.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 765, "filename": "call_indirect.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 776, "filename": "call_indirect.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 784, "filename": "call_indirect.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 793, "filename": "call_indirect.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 803, "filename": "call_indirect.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 813, "filename": "call_indirect.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 823, "filename": "call_indirect.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 834, "filename": "call_indirect.25.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 847, "filename": "call_indirect.26.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 860, "filename": "call_indirect.27.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 873, "filename": "call_indirect.28.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 886, "filename": "call_indirect.29.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 902, "filename": "call_indirect.30.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 922, "filename": "call_indirect.31.wasm", "text": "unknown type", "module_type": "binary"}, - {"type": "assert_invalid", "line": 929, "filename": "call_indirect.32.wasm", "text": "unknown type", "module_type": "binary"}, - {"type": "assert_invalid", "line": 940, "filename": "call_indirect.33.wasm", "text": "unknown function 0", "module_type": "binary"}]} + {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 479, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, + {"type": "assert_return", "line": 480, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, + {"type": "assert_return", "line": 481, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": [{"type": "f64", "value": "4660882566700597248"}]}, + {"type": "assert_return", "line": 485, "action": {"type": "invoke", "field": "type-index", "args": []}, "expected": [{"type": "i64", "value": "100"}]}, + {"type": "assert_return", "line": 487, "action": {"type": "invoke", "field": "type-first-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 488, "action": {"type": "invoke", "field": "type-first-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, + {"type": "assert_return", "line": 489, "action": {"type": "invoke", "field": "type-first-f32", "args": []}, "expected": [{"type": "f32", "value": "1068037571"}]}, + {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "type-first-f64", "args": []}, "expected": [{"type": "f64", "value": "4610064722561534525"}]}, + {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "type-second-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 493, "action": {"type": "invoke", "field": "type-second-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, + {"type": "assert_return", "line": 494, "action": {"type": "invoke", "field": "type-second-f32", "args": []}, "expected": [{"type": "f32", "value": "1107296256"}]}, + {"type": "assert_return", "line": 495, "action": {"type": "invoke", "field": "type-second-f64", "args": []}, "expected": [{"type": "f64", "value": "4634211053438658150"}]}, + {"type": "assert_return", "line": 502, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "5"}, {"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "5"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "5"}]}, + {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "12"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "13"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, + {"type": "assert_return", "line": 506, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "20"}, {"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_trap", "line": 507, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "0"}, {"type": "i64", "value": "2"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 508, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "15"}, {"type": "i64", "value": "2"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 509, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "32"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 510, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "4294967295"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 511, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "1213432423"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, + {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i64", "value": "9"}]}, + {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i64", "value": "362880"}]}, + {"type": "assert_return", "line": 515, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i64", "value": "55"}]}, + {"type": "assert_return", "line": 516, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i64", "value": "9"}]}, + {"type": "assert_trap", "line": 517, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "11"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 518, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "22"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, + {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "362880"}]}, + {"type": "assert_return", "line": 522, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "55"}]}, + {"type": "assert_return", "line": 523, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_trap", "line": 524, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "9"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 525, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "21"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "f32", "value": "1091567616"}]}, + {"type": "assert_return", "line": 528, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f32", "value": "1219571712"}]}, + {"type": "assert_return", "line": 529, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "f32", "value": "1113325568"}]}, + {"type": "assert_return", "line": 530, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "f32", "value": "1091567616"}]}, + {"type": "assert_trap", "line": 531, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "8"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 532, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "19"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f32"}]}, + {"type": "assert_return", "line": 534, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, + {"type": "assert_return", "line": 535, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "f64", "value": "4689977843394805760"}]}, + {"type": "assert_return", "line": 536, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "f64", "value": "4632937379169042432"}]}, + {"type": "assert_return", "line": 537, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, + {"type": "assert_trap", "line": 538, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "10"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f64"}]}, + {"type": "assert_trap", "line": 539, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "18"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f64"}]}, + {"type": "assert_return", "line": 541, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 542, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 543, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 544, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 546, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "120"}]}, + {"type": "assert_return", "line": 549, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "3628800"}]}, + {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 553, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1123024896"}]}, + {"type": "assert_return", "line": 554, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1092616192"}]}, "expected": [{"type": "f32", "value": "1247640576"}]}, + {"type": "assert_return", "line": 556, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 557, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 558, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4638144666238189568"}]}, + {"type": "assert_return", "line": 559, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4621819117588971520"}]}, "expected": [{"type": "f64", "value": "4705047200009289728"}]}, + {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 562, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 563, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 564, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, + {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "10946"}]}, + {"type": "assert_return", "line": 567, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 569, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 570, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "10946"}]}, + {"type": "assert_return", "line": 573, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 576, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1090519040"}]}, + {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1101004800"}]}, "expected": [{"type": "f32", "value": "1177225216"}]}, + {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 582, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4620693217682128896"}]}, + {"type": "assert_return", "line": 583, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4626322717216342016"}]}, "expected": [{"type": "f64", "value": "4667243241467281408"}]}, + {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "100"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "77"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 590, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 591, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "200"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "77"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_exhaustion", "line": 594, "action": {"type": "invoke", "field": "runaway", "args": []}, "text": "call stack exhausted", "expected": []}, + {"type": "assert_exhaustion", "line": 595, "action": {"type": "invoke", "field": "mutual-runaway", "args": []}, "text": "call stack exhausted", "expected": []}, + {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 599, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 601, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 603, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, + {"type": "assert_return", "line": 604, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 606, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, + {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 610, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 614, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 615, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 616, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 617, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 622, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 623, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 624, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 626, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_malformed", "line": 678, "filename": "call_indirect.1.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 690, "filename": "call_indirect.2.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 702, "filename": "call_indirect.3.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 714, "filename": "call_indirect.4.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 726, "filename": "call_indirect.5.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 738, "filename": "call_indirect.6.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 748, "filename": "call_indirect.7.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 755, "filename": "call_indirect.8.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 765, "filename": "call_indirect.9.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 775, "filename": "call_indirect.10.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 785, "filename": "call_indirect.11.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_invalid", "line": 800, "filename": "call_indirect.12.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 808, "filename": "call_indirect.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 816, "filename": "call_indirect.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 825, "filename": "call_indirect.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 833, "filename": "call_indirect.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 841, "filename": "call_indirect.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 849, "filename": "call_indirect.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 860, "filename": "call_indirect.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 868, "filename": "call_indirect.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 877, "filename": "call_indirect.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 887, "filename": "call_indirect.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 897, "filename": "call_indirect.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 907, "filename": "call_indirect.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 918, "filename": "call_indirect.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 931, "filename": "call_indirect.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 944, "filename": "call_indirect.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 957, "filename": "call_indirect.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 970, "filename": "call_indirect.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 986, "filename": "call_indirect.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1006, "filename": "call_indirect.31.wasm", "text": "unknown type", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1013, "filename": "call_indirect.32.wasm", "text": "unknown type", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1024, "filename": "call_indirect.33.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "module", "line": 1033, "filename": "call_indirect.34.wasm"}]} diff --git a/tests/gen/conversions.json b/tests/gen/conversions.json index 6ef6a9b..ed9a709 100644 --- a/tests/gen/conversions.json +++ b/tests/gen/conversions.json @@ -209,413 +209,413 @@ {"type": "assert_trap", "line": 252, "action": {"type": "invoke", "field": "i64.trunc_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "text": "invalid conversion to integer", "expected": [{"type": "i64"}]}, {"type": "assert_trap", "line": 253, "action": {"type": "invoke", "field": "i64.trunc_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "text": "invalid conversion to integer", "expected": [{"type": "i64"}]}, {"type": "assert_trap", "line": 254, "action": {"type": "invoke", "field": "i64.trunc_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "text": "invalid conversion to integer", "expected": [{"type": "i64"}]}, - {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3213675725"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3220386611"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3221225472"}]}, "expected": [{"type": "i32", "value": "4294967294"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1325400063"}]}, "expected": [{"type": "i32", "value": "2147483520"}]}, - {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3472883712"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1325400064"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3472883713"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 279, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 282, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 284, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1072902963"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1325400064"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788671"}]}, "expected": [{"type": "i32", "value": "4294967040"}]}, - {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3211159142"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 300, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 309, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13831004815617530266"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 312, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13834607695319426662"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13835058055282163712"}]}, "expected": [{"type": "i32", "value": "4294967294"}]}, - {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4746794007244308480"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13970166044103278592"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4746794007248502784"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13970166044105375744"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 322, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 323, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 324, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 326, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 327, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 328, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 329, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 330, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 331, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 332, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 333, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4611235658464650854"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 334, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 335, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4746794007248502784"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 336, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606873776128"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 337, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13829653735729319117"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 338, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 339, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4726483295884279808"}]}, "expected": [{"type": "i32", "value": "100000000"}]}, - {"type": "assert_return", "line": 340, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 341, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 342, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4846369599423283200"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 343, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "5055640609639927018"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 344, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 345, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 346, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 347, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 348, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 349, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 350, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 352, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 353, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 354, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 355, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 356, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 357, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 358, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 359, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 360, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3213675725"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 361, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3220386611"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3221225472"}]}, "expected": [{"type": "i64", "value": "18446744073709551614"}]}, - {"type": "assert_return", "line": 364, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, - {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3481272320"}]}, "expected": [{"type": "i64", "value": "18446744069414584320"}]}, - {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1593835519"}]}, "expected": [{"type": "i64", "value": "9223371487098961920"}]}, - {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3741319168"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1593835520"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, - {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3741319169"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, - {"type": "assert_return", "line": 371, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 382, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, - {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1602224127"}]}, "expected": [{"type": "i64", "value": "18446742974197923840"}]}, - {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3211159142"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 388, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1602224128"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 389, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 392, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 398, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13831004815617530266"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 407, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13834607695319426662"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 408, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13835058055282163712"}]}, "expected": [{"type": "i64", "value": "18446744073709551614"}]}, - {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, - {"type": "assert_return", "line": 410, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13974669643730649088"}]}, "expected": [{"type": "i64", "value": "18446744069414584320"}]}, - {"type": "assert_return", "line": 411, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4890909195324358655"}]}, "expected": [{"type": "i64", "value": "9223372036854774784"}]}, - {"type": "assert_return", "line": 412, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "14114281232179134464"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, - {"type": "assert_return", "line": 414, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "14114281232179134465"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, - {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 417, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 423, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 424, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 425, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 427, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 428, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 429, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606873776128"}]}, "expected": [{"type": "i64", "value": "4294967295"}]}, - {"type": "assert_return", "line": 430, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, - {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4895412794951729151"}]}, "expected": [{"type": "i64", "value": "18446744073709549568"}]}, - {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13829653735729319117"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 434, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4726483295884279808"}]}, "expected": [{"type": "i64", "value": "100000000"}]}, - {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4846369599423283200"}]}, "expected": [{"type": "i64", "value": "10000000000000000"}]}, - {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4895412794951729152"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 439, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 440, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 443, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 446, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, - {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "3472883712"}]}, - {"type": "assert_return", "line": 451, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "1234567890"}]}, "expected": [{"type": "f32", "value": "1318267910"}]}, - {"type": "assert_return", "line": 453, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4278190079"}]}, "expected": [{"type": "f32", "value": "3414163456"}]}, - {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4278190077"}]}, "expected": [{"type": "f32", "value": "3414163458"}]}, - {"type": "assert_return", "line": 458, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, - {"type": "assert_return", "line": 462, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "3741319168"}]}, - {"type": "assert_return", "line": 463, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "314159265358979"}]}, "expected": [{"type": "f32", "value": "1468980468"}]}, - {"type": "assert_return", "line": 465, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 466, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073692774399"}]}, "expected": [{"type": "f32", "value": "3414163456"}]}, - {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073692774397"}]}, "expected": [{"type": "f32", "value": "3414163458"}]}, - {"type": "assert_return", "line": 470, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223371212221054977"}]}, "expected": [{"type": "f32", "value": "1593835519"}]}, - {"type": "assert_return", "line": 471, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372311732682753"}]}, "expected": [{"type": "f32", "value": "3741319167"}]}, - {"type": "assert_return", "line": 472, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9007199791611905"}]}, "expected": [{"type": "f32", "value": "1509949441"}]}, - {"type": "assert_return", "line": 473, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18437736873917939711"}]}, "expected": [{"type": "f32", "value": "3657433089"}]}, - {"type": "assert_return", "line": 475, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 476, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 477, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f64", "value": "4746794007244308480"}]}, - {"type": "assert_return", "line": 479, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "13970166044103278592"}]}, - {"type": "assert_return", "line": 480, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "987654321"}]}, "expected": [{"type": "f64", "value": "4741568253304766464"}]}, - {"type": "assert_return", "line": 482, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 483, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 484, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 485, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, - {"type": "assert_return", "line": 486, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "14114281232179134464"}]}, - {"type": "assert_return", "line": 487, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "4669201609102990"}]}, "expected": [{"type": "f64", "value": "4841535201405015694"}]}, - {"type": "assert_return", "line": 489, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9007199254740993"}]}, "expected": [{"type": "f64", "value": "4845873199050653696"}]}, - {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18437736874454810623"}]}, "expected": [{"type": "f64", "value": "14069245235905429504"}]}, - {"type": "assert_return", "line": 491, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9007199254740995"}]}, "expected": [{"type": "f64", "value": "4845873199050653698"}]}, - {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18437736874454810621"}]}, "expected": [{"type": "f64", "value": "14069245235905429506"}]}, - {"type": "assert_return", "line": 494, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 495, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 496, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, - {"type": "assert_return", "line": 497, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, - {"type": "assert_return", "line": 498, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "305419896"}]}, "expected": [{"type": "f32", "value": "1301390004"}]}, - {"type": "assert_return", "line": 499, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "1333788672"}]}, - {"type": "assert_return", "line": 500, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483776"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, - {"type": "assert_return", "line": 501, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483777"}]}, "expected": [{"type": "f32", "value": "1325400065"}]}, - {"type": "assert_return", "line": 502, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483778"}]}, "expected": [{"type": "f32", "value": "1325400065"}]}, - {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966912"}]}, "expected": [{"type": "f32", "value": "1333788670"}]}, - {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966913"}]}, "expected": [{"type": "f32", "value": "1333788671"}]}, - {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966914"}]}, "expected": [{"type": "f32", "value": "1333788671"}]}, - {"type": "assert_return", "line": 507, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 508, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 510, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 511, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 512, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, - {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, - {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f32", "value": "1602224128"}]}, - {"type": "assert_return", "line": 516, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 517, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 519, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9007199791611905"}]}, "expected": [{"type": "f32", "value": "1509949441"}]}, - {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223371761976868863"}]}, "expected": [{"type": "f32", "value": "1593835519"}]}, - {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372586610589697"}]}, "expected": [{"type": "f32", "value": "1593835521"}]}, - {"type": "assert_return", "line": 522, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "18446742424442109953"}]}, "expected": [{"type": "f32", "value": "1602224127"}]}, - {"type": "assert_return", "line": 524, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 525, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 526, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f64", "value": "4746794007244308480"}]}, - {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "4746794007248502784"}]}, - {"type": "assert_return", "line": 528, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f64", "value": "4751297606873776128"}]}, - {"type": "assert_return", "line": 530, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 531, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 532, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, - {"type": "assert_return", "line": 533, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, - {"type": "assert_return", "line": 534, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "4895412794951729152"}]}, - {"type": "assert_return", "line": 535, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776832"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, - {"type": "assert_return", "line": 536, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776833"}]}, "expected": [{"type": "f64", "value": "4890909195324358657"}]}, - {"type": "assert_return", "line": 537, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776834"}]}, "expected": [{"type": "f64", "value": "4890909195324358657"}]}, - {"type": "assert_return", "line": 538, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548544"}]}, "expected": [{"type": "f64", "value": "4895412794951729150"}]}, - {"type": "assert_return", "line": 539, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548545"}]}, "expected": [{"type": "f64", "value": "4895412794951729151"}]}, - {"type": "assert_return", "line": 540, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548546"}]}, "expected": [{"type": "f64", "value": "4895412794951729151"}]}, - {"type": "assert_return", "line": 542, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9007199254740993"}]}, "expected": [{"type": "f64", "value": "4845873199050653696"}]}, - {"type": "assert_return", "line": 543, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9007199254740995"}]}, "expected": [{"type": "f64", "value": "4845873199050653698"}]}, - {"type": "assert_return", "line": 545, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 546, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "f64", "value": "3936146074321813504"}]}, - {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "f64", "value": "13159518111176589312"}]}, - {"type": "assert_return", "line": 549, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 550, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "f64", "value": "14407015207421345792"}]}, - {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2139095039"}]}, "expected": [{"type": "f64", "value": "5183643170566569984"}]}, - {"type": "assert_return", "line": 554, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "67108864"}]}, "expected": [{"type": "f64", "value": "4071254063142928384"}]}, - {"type": "assert_return", "line": 556, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2118632255"}]}, "expected": [{"type": "f64", "value": "5172657297058430976"}]}, - {"type": "assert_return", "line": 557, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 558, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 559, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 560, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f64", "value": "nan:arithmetic"}]}, - {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 562, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "f64", "value": "nan:arithmetic"}]}, - {"type": "assert_return", "line": 564, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 566, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 567, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 569, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 570, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4039728865214464000"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, - {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13263100902069239808"}]}, "expected": [{"type": "f32", "value": "2155872256"}]}, - {"type": "assert_return", "line": 572, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4039728865214463999"}]}, "expected": [{"type": "f32", "value": "8388607"}]}, - {"type": "assert_return", "line": 573, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13263100902069239807"}]}, "expected": [{"type": "f32", "value": "2155872255"}]}, - {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3936146074321813504"}]}, "expected": [{"type": "f32", "value": "1"}]}, - {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13159518111176589312"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, - {"type": "assert_return", "line": 576, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170298134528"}]}, "expected": [{"type": "f32", "value": "2139095038"}]}, - {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207152910336"}]}, "expected": [{"type": "f32", "value": "4286578686"}]}, - {"type": "assert_return", "line": 578, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170298134529"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207152910337"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, - {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170566569984"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207421345792"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, - {"type": "assert_return", "line": 582, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170835005439"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 583, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207689781247"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, - {"type": "assert_return", "line": 584, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170835005440"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207689781248"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4071254063142928384"}]}, "expected": [{"type": "f32", "value": "67108864"}]}, - {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5172657297058430976"}]}, "expected": [{"type": "f32", "value": "2118632255"}]}, - {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 590, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017409"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 591, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017407"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419068452864"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 593, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419068452865"}]}, "expected": [{"type": "f32", "value": "1065353217"}]}, - {"type": "assert_return", "line": 594, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419605323775"}]}, "expected": [{"type": "f32", "value": "1065353217"}]}, - {"type": "assert_return", "line": 595, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419605323776"}]}, "expected": [{"type": "f32", "value": "1065353218"}]}, - {"type": "assert_return", "line": 596, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182420142194688"}]}, "expected": [{"type": "f32", "value": "1065353218"}]}, - {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810125344768"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810125344769"}]}, "expected": [{"type": "f32", "value": "1266679809"}]}, - {"type": "assert_return", "line": 599, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810662215679"}]}, "expected": [{"type": "f32", "value": "1266679809"}]}, - {"type": "assert_return", "line": 600, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810662215680"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 601, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5094955347580439664"}]}, "expected": [{"type": "f32", "value": "1973901096"}]}, - {"type": "assert_return", "line": 602, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4101111194527827589"}]}, "expected": [{"type": "f32", "value": "122722105"}]}, - {"type": "assert_return", "line": 603, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4038806939559600639"}]}, "expected": [{"type": "f32", "value": "7529997"}]}, - {"type": "assert_return", "line": 604, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13836913116900734306"}]}, "expected": [{"type": "f32", "value": "3224680794"}]}, - {"type": "assert_return", "line": 605, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14338315240173327556"}]}, "expected": [{"type": "f32", "value": "4158615026"}]}, - {"type": "assert_return", "line": 606, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f32", "value": "nan:arithmetic"}]}, - {"type": "assert_return", "line": 608, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "f32", "value": "nan:arithmetic"}]}, - {"type": "assert_return", "line": 610, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4503599627370496"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 611, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9227875636482146304"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3931642474694443008"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13155014511549218816"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 614, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3931642474694443009"}]}, "expected": [{"type": "f32", "value": "1"}]}, - {"type": "assert_return", "line": 615, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13155014511549218817"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, - {"type": "assert_return", "line": 617, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1"}]}, - {"type": "assert_return", "line": 620, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "123456789"}]}, "expected": [{"type": "f32", "value": "123456789"}]}, - {"type": "assert_return", "line": 622, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2147483649"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, - {"type": "assert_return", "line": 623, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 624, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 626, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 628, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4288675840"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 630, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 631, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "1"}]}, - {"type": "assert_return", "line": 632, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 633, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 634, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "1234567890"}]}, "expected": [{"type": "f64", "value": "1234567890"}]}, - {"type": "assert_return", "line": 635, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9223372036854775809"}]}, "expected": [{"type": "f64", "value": "9223372036854775809"}]}, - {"type": "assert_return", "line": 636, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 637, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 638, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 639, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 640, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 641, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18443366373989023744"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 643, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 644, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 645, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 646, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 647, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "2147483649"}]}, - {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1078530010"}]}, "expected": [{"type": "i32", "value": "1078530010"}]}, - {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2139095039"}]}, "expected": [{"type": "i32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 651, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "i32", "value": "4286578687"}]}, - {"type": "assert_return", "line": 652, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 653, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 654, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 655, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 656, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 657, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 659, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 660, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 661, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18446744073709551615"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "9223372036854775809"}]}, - {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "4614256656552045841"}]}, "expected": [{"type": "i64", "value": "4614256656552045841"}]}, - {"type": "assert_return", "line": 666, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9218868437227405311"}]}, "expected": [{"type": "i64", "value": "9218868437227405311"}]}, - {"type": "assert_return", "line": 667, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18442240474082181119"}]}, "expected": [{"type": "i64", "value": "18442240474082181119"}]}, - {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 672, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 673, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "18443366373989023744"}]}, - {"type": "assert_invalid", "line": 677, "filename": "conversions.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 678, "filename": "conversions.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 679, "filename": "conversions.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 680, "filename": "conversions.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 681, "filename": "conversions.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 682, "filename": "conversions.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 683, "filename": "conversions.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 684, "filename": "conversions.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 685, "filename": "conversions.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 686, "filename": "conversions.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 687, "filename": "conversions.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 688, "filename": "conversions.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 689, "filename": "conversions.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 690, "filename": "conversions.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 691, "filename": "conversions.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 692, "filename": "conversions.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 693, "filename": "conversions.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 694, "filename": "conversions.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 695, "filename": "conversions.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 696, "filename": "conversions.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 697, "filename": "conversions.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 698, "filename": "conversions.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 699, "filename": "conversions.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 700, "filename": "conversions.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 701, "filename": "conversions.25.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 257, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "3472883712"}]}, + {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "1234567890"}]}, "expected": [{"type": "f32", "value": "1318267910"}]}, + {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3213675725"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3220386611"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3221225472"}]}, "expected": [{"type": "i32", "value": "4294967294"}]}, + {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1325400063"}]}, "expected": [{"type": "i32", "value": "2147483520"}]}, + {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3472883712"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 279, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1325400064"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3472883713"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 282, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 284, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1072902963"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1325400064"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788671"}]}, "expected": [{"type": "i32", "value": "4294967040"}]}, + {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3211159142"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 300, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 302, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 312, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13831004815617530266"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13834607695319426662"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13835058055282163712"}]}, "expected": [{"type": "i32", "value": "4294967294"}]}, + {"type": "assert_return", "line": 322, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4746794007244308480"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 323, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13970166044103278592"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 324, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4746794007248502784"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 325, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13970166044105375744"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 326, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 327, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 328, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 329, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 330, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 331, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 333, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 334, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 335, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 336, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 337, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 338, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 339, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 340, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4611235658464650854"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 341, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 342, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4746794007248502784"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 343, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606873776128"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 344, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13829653735729319117"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 345, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 346, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4726483295884279808"}]}, "expected": [{"type": "i32", "value": "100000000"}]}, + {"type": "assert_return", "line": 347, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 348, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 349, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4846369599423283200"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 350, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "5055640609639927018"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 351, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 352, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 353, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 354, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 355, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 356, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 357, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 359, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 360, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 361, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 364, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3213675725"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3220386611"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3221225472"}]}, "expected": [{"type": "i64", "value": "18446744073709551614"}]}, + {"type": "assert_return", "line": 371, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, + {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3481272320"}]}, "expected": [{"type": "i64", "value": "18446744069414584320"}]}, + {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1593835519"}]}, "expected": [{"type": "i64", "value": "9223371487098961920"}]}, + {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3741319168"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1593835520"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, + {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3741319169"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, + {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 382, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 388, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 389, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, + {"type": "assert_return", "line": 392, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1602224127"}]}, "expected": [{"type": "i64", "value": "18446742974197923840"}]}, + {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3211159142"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1602224128"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 396, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 398, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 407, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 408, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 410, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 411, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 412, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13831004815617530266"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 414, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13834607695319426662"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13835058055282163712"}]}, "expected": [{"type": "i64", "value": "18446744073709551614"}]}, + {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, + {"type": "assert_return", "line": 417, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13974669643730649088"}]}, "expected": [{"type": "i64", "value": "18446744069414584320"}]}, + {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4890909195324358655"}]}, "expected": [{"type": "i64", "value": "9223372036854774784"}]}, + {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "14114281232179134464"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, + {"type": "assert_return", "line": 421, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "14114281232179134465"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, + {"type": "assert_return", "line": 423, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 424, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 425, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 427, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 429, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 430, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 434, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606873776128"}]}, "expected": [{"type": "i64", "value": "4294967295"}]}, + {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, + {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4895412794951729151"}]}, "expected": [{"type": "i64", "value": "18446744073709549568"}]}, + {"type": "assert_return", "line": 439, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13829653735729319117"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 440, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4726483295884279808"}]}, "expected": [{"type": "i64", "value": "100000000"}]}, + {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4846369599423283200"}]}, "expected": [{"type": "i64", "value": "10000000000000000"}]}, + {"type": "assert_return", "line": 443, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4895412794951729152"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 445, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 446, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 451, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4278190079"}]}, "expected": [{"type": "f32", "value": "3414163456"}]}, + {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4278190077"}]}, "expected": [{"type": "f32", "value": "3414163458"}]}, + {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 462, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, + {"type": "assert_return", "line": 463, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "3741319168"}]}, + {"type": "assert_return", "line": 464, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "314159265358979"}]}, "expected": [{"type": "f32", "value": "1468980468"}]}, + {"type": "assert_return", "line": 466, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073692774399"}]}, "expected": [{"type": "f32", "value": "3414163456"}]}, + {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 469, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073692774397"}]}, "expected": [{"type": "f32", "value": "3414163458"}]}, + {"type": "assert_return", "line": 471, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223371212221054977"}]}, "expected": [{"type": "f32", "value": "1593835519"}]}, + {"type": "assert_return", "line": 472, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372311732682753"}]}, "expected": [{"type": "f32", "value": "3741319167"}]}, + {"type": "assert_return", "line": 473, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9007199791611905"}]}, "expected": [{"type": "f32", "value": "1509949441"}]}, + {"type": "assert_return", "line": 474, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18437736873917939711"}]}, "expected": [{"type": "f32", "value": "3657433089"}]}, + {"type": "assert_return", "line": 476, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 477, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 479, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f64", "value": "4746794007244308480"}]}, + {"type": "assert_return", "line": 480, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "13970166044103278592"}]}, + {"type": "assert_return", "line": 481, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "987654321"}]}, "expected": [{"type": "f64", "value": "4741568253304766464"}]}, + {"type": "assert_return", "line": 483, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 484, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 485, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 486, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, + {"type": "assert_return", "line": 487, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "14114281232179134464"}]}, + {"type": "assert_return", "line": 488, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "4669201609102990"}]}, "expected": [{"type": "f64", "value": "4841535201405015694"}]}, + {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9007199254740993"}]}, "expected": [{"type": "f64", "value": "4845873199050653696"}]}, + {"type": "assert_return", "line": 491, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18437736874454810623"}]}, "expected": [{"type": "f64", "value": "14069245235905429504"}]}, + {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9007199254740995"}]}, "expected": [{"type": "f64", "value": "4845873199050653698"}]}, + {"type": "assert_return", "line": 493, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18437736874454810621"}]}, "expected": [{"type": "f64", "value": "14069245235905429506"}]}, + {"type": "assert_return", "line": 495, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 496, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 497, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, + {"type": "assert_return", "line": 498, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, + {"type": "assert_return", "line": 499, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "305419896"}]}, "expected": [{"type": "f32", "value": "1301390004"}]}, + {"type": "assert_return", "line": 500, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "1333788672"}]}, + {"type": "assert_return", "line": 501, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483776"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, + {"type": "assert_return", "line": 502, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483777"}]}, "expected": [{"type": "f32", "value": "1325400065"}]}, + {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483778"}]}, "expected": [{"type": "f32", "value": "1325400065"}]}, + {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966912"}]}, "expected": [{"type": "f32", "value": "1333788670"}]}, + {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966913"}]}, "expected": [{"type": "f32", "value": "1333788671"}]}, + {"type": "assert_return", "line": 506, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966914"}]}, "expected": [{"type": "f32", "value": "1333788671"}]}, + {"type": "assert_return", "line": 508, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 509, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 511, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 512, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, + {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, + {"type": "assert_return", "line": 515, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f32", "value": "1602224128"}]}, + {"type": "assert_return", "line": 517, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 518, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9007199791611905"}]}, "expected": [{"type": "f32", "value": "1509949441"}]}, + {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223371761976868863"}]}, "expected": [{"type": "f32", "value": "1593835519"}]}, + {"type": "assert_return", "line": 522, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372586610589697"}]}, "expected": [{"type": "f32", "value": "1593835521"}]}, + {"type": "assert_return", "line": 523, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "18446742424442109953"}]}, "expected": [{"type": "f32", "value": "1602224127"}]}, + {"type": "assert_return", "line": 525, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 526, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f64", "value": "4746794007244308480"}]}, + {"type": "assert_return", "line": 528, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "4746794007248502784"}]}, + {"type": "assert_return", "line": 529, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f64", "value": "4751297606873776128"}]}, + {"type": "assert_return", "line": 531, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 532, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 533, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, + {"type": "assert_return", "line": 534, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, + {"type": "assert_return", "line": 535, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "4895412794951729152"}]}, + {"type": "assert_return", "line": 536, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776832"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, + {"type": "assert_return", "line": 537, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776833"}]}, "expected": [{"type": "f64", "value": "4890909195324358657"}]}, + {"type": "assert_return", "line": 538, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776834"}]}, "expected": [{"type": "f64", "value": "4890909195324358657"}]}, + {"type": "assert_return", "line": 539, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548544"}]}, "expected": [{"type": "f64", "value": "4895412794951729150"}]}, + {"type": "assert_return", "line": 540, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548545"}]}, "expected": [{"type": "f64", "value": "4895412794951729151"}]}, + {"type": "assert_return", "line": 541, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548546"}]}, "expected": [{"type": "f64", "value": "4895412794951729151"}]}, + {"type": "assert_return", "line": 543, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9007199254740993"}]}, "expected": [{"type": "f64", "value": "4845873199050653696"}]}, + {"type": "assert_return", "line": 544, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9007199254740995"}]}, "expected": [{"type": "f64", "value": "4845873199050653698"}]}, + {"type": "assert_return", "line": 546, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "f64", "value": "3936146074321813504"}]}, + {"type": "assert_return", "line": 549, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "f64", "value": "13159518111176589312"}]}, + {"type": "assert_return", "line": 550, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "f64", "value": "14407015207421345792"}]}, + {"type": "assert_return", "line": 553, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2139095039"}]}, "expected": [{"type": "f64", "value": "5183643170566569984"}]}, + {"type": "assert_return", "line": 555, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "67108864"}]}, "expected": [{"type": "f64", "value": "4071254063142928384"}]}, + {"type": "assert_return", "line": 557, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2118632255"}]}, "expected": [{"type": "f64", "value": "5172657297058430976"}]}, + {"type": "assert_return", "line": 558, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 559, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 560, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f64", "value": "nan:arithmetic"}]}, + {"type": "assert_return", "line": 562, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 563, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "f64", "value": "nan:arithmetic"}]}, + {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 566, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 567, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 569, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 570, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4039728865214464000"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, + {"type": "assert_return", "line": 572, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13263100902069239808"}]}, "expected": [{"type": "f32", "value": "2155872256"}]}, + {"type": "assert_return", "line": 573, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4039728865214463999"}]}, "expected": [{"type": "f32", "value": "8388607"}]}, + {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13263100902069239807"}]}, "expected": [{"type": "f32", "value": "2155872255"}]}, + {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3936146074321813504"}]}, "expected": [{"type": "f32", "value": "1"}]}, + {"type": "assert_return", "line": 576, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13159518111176589312"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, + {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170298134528"}]}, "expected": [{"type": "f32", "value": "2139095038"}]}, + {"type": "assert_return", "line": 578, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207152910336"}]}, "expected": [{"type": "f32", "value": "4286578686"}]}, + {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170298134529"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207152910337"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, + {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170566569984"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 582, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207421345792"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, + {"type": "assert_return", "line": 583, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170835005439"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 584, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207689781247"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, + {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170835005440"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207689781248"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4071254063142928384"}]}, "expected": [{"type": "f32", "value": "67108864"}]}, + {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5172657297058430976"}]}, "expected": [{"type": "f32", "value": "2118632255"}]}, + {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 590, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 591, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017409"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017407"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 593, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419068452864"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 594, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419068452865"}]}, "expected": [{"type": "f32", "value": "1065353217"}]}, + {"type": "assert_return", "line": 595, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419605323775"}]}, "expected": [{"type": "f32", "value": "1065353217"}]}, + {"type": "assert_return", "line": 596, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419605323776"}]}, "expected": [{"type": "f32", "value": "1065353218"}]}, + {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182420142194688"}]}, "expected": [{"type": "f32", "value": "1065353218"}]}, + {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810125344768"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 599, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810125344769"}]}, "expected": [{"type": "f32", "value": "1266679809"}]}, + {"type": "assert_return", "line": 600, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810662215679"}]}, "expected": [{"type": "f32", "value": "1266679809"}]}, + {"type": "assert_return", "line": 601, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810662215680"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 602, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5094955347580439664"}]}, "expected": [{"type": "f32", "value": "1973901096"}]}, + {"type": "assert_return", "line": 603, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4101111194527827589"}]}, "expected": [{"type": "f32", "value": "122722105"}]}, + {"type": "assert_return", "line": 604, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4038806939559600639"}]}, "expected": [{"type": "f32", "value": "7529997"}]}, + {"type": "assert_return", "line": 605, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13836913116900734306"}]}, "expected": [{"type": "f32", "value": "3224680794"}]}, + {"type": "assert_return", "line": 606, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14338315240173327556"}]}, "expected": [{"type": "f32", "value": "4158615026"}]}, + {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 608, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f32", "value": "nan:arithmetic"}]}, + {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 610, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "f32", "value": "nan:arithmetic"}]}, + {"type": "assert_return", "line": 611, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4503599627370496"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9227875636482146304"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3931642474694443008"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 614, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13155014511549218816"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 615, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3931642474694443009"}]}, "expected": [{"type": "f32", "value": "1"}]}, + {"type": "assert_return", "line": 616, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13155014511549218817"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, + {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 620, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1"}]}, + {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 622, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "123456789"}]}, "expected": [{"type": "f32", "value": "123456789"}]}, + {"type": "assert_return", "line": 623, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2147483649"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, + {"type": "assert_return", "line": 624, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 626, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 628, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 629, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4288675840"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 631, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 632, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "1"}]}, + {"type": "assert_return", "line": 633, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 634, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 635, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "1234567890"}]}, "expected": [{"type": "f64", "value": "1234567890"}]}, + {"type": "assert_return", "line": 636, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9223372036854775809"}]}, "expected": [{"type": "f64", "value": "9223372036854775809"}]}, + {"type": "assert_return", "line": 637, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 638, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 639, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 640, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 641, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 642, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18443366373989023744"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 644, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 645, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 646, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 647, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "2147483649"}]}, + {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1078530010"}]}, "expected": [{"type": "i32", "value": "1078530010"}]}, + {"type": "assert_return", "line": 651, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2139095039"}]}, "expected": [{"type": "i32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 652, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "i32", "value": "4286578687"}]}, + {"type": "assert_return", "line": 653, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 654, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 655, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 656, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 657, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 658, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 660, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 661, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18446744073709551615"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "9223372036854775809"}]}, + {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 666, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "4614256656552045841"}]}, "expected": [{"type": "i64", "value": "4614256656552045841"}]}, + {"type": "assert_return", "line": 667, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9218868437227405311"}]}, "expected": [{"type": "i64", "value": "9218868437227405311"}]}, + {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18442240474082181119"}]}, "expected": [{"type": "i64", "value": "18442240474082181119"}]}, + {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 672, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 673, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 674, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "18443366373989023744"}]}, + {"type": "assert_invalid", "line": 678, "filename": "conversions.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 679, "filename": "conversions.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 680, "filename": "conversions.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 681, "filename": "conversions.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 682, "filename": "conversions.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 683, "filename": "conversions.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 684, "filename": "conversions.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 685, "filename": "conversions.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 686, "filename": "conversions.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 687, "filename": "conversions.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 688, "filename": "conversions.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 689, "filename": "conversions.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 690, "filename": "conversions.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 691, "filename": "conversions.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 692, "filename": "conversions.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 693, "filename": "conversions.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 694, "filename": "conversions.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 695, "filename": "conversions.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 696, "filename": "conversions.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 697, "filename": "conversions.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 698, "filename": "conversions.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 699, "filename": "conversions.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 700, "filename": "conversions.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 701, "filename": "conversions.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 702, "filename": "conversions.25.wasm", "text": "type mismatch", "module_type": "binary"}]} diff --git a/tests/gen/f32.12.wat b/tests/gen/f32.12.wat new file mode 100644 index 0000000..5795eca --- /dev/null +++ b/tests/gen/f32.12.wat @@ -0,0 +1 @@ +(func (result f32) (f32.const nan:arithmetic)) \ No newline at end of file diff --git a/tests/gen/f32.13.wat b/tests/gen/f32.13.wat new file mode 100644 index 0000000..01437fd --- /dev/null +++ b/tests/gen/f32.13.wat @@ -0,0 +1 @@ +(func (result f32) (f32.const nan:canonical)) \ No newline at end of file diff --git a/tests/gen/f32.json b/tests/gen/f32.json index ce94b21..0d0e483 100644 --- a/tests/gen/f32.json +++ b/tests/gen/f32.json @@ -2511,4 +2511,6 @@ {"type": "assert_invalid", "line": 2530, "filename": "f32.8.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 2531, "filename": "f32.9.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 2532, "filename": "f32.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 2533, "filename": "f32.11.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_invalid", "line": 2533, "filename": "f32.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 2537, "filename": "f32.12.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 2541, "filename": "f32.13.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/f64.12.wat b/tests/gen/f64.12.wat new file mode 100644 index 0000000..0f0efec --- /dev/null +++ b/tests/gen/f64.12.wat @@ -0,0 +1 @@ +(func (result f64) (f64.const nan:arithmetic)) \ No newline at end of file diff --git a/tests/gen/f64.13.wat b/tests/gen/f64.13.wat new file mode 100644 index 0000000..dea52cb --- /dev/null +++ b/tests/gen/f64.13.wat @@ -0,0 +1 @@ +(func (result f64) (f64.const nan:canonical)) \ No newline at end of file diff --git a/tests/gen/f64.json b/tests/gen/f64.json index a5f2a51..28699ed 100644 --- a/tests/gen/f64.json +++ b/tests/gen/f64.json @@ -2511,4 +2511,6 @@ {"type": "assert_invalid", "line": 2530, "filename": "f64.8.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 2531, "filename": "f64.9.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 2532, "filename": "f64.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 2533, "filename": "f64.11.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_invalid", "line": 2533, "filename": "f64.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 2537, "filename": "f64.12.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 2541, "filename": "f64.13.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/fac.json b/tests/gen/fac.json index 0004e35..9f1158a 100644 --- a/tests/gen/fac.json +++ b/tests/gen/fac.json @@ -1,9 +1,9 @@ {"source_filename": "fac.wast", "commands": [ {"type": "module", "line": 1, "filename": "fac.0.wasm"}, - {"type": "assert_return", "line": 84, "action": {"type": "invoke", "field": "fac-rec", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 85, "action": {"type": "invoke", "field": "fac-iter", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 86, "action": {"type": "invoke", "field": "fac-rec-named", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 87, "action": {"type": "invoke", "field": "fac-iter-named", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 88, "action": {"type": "invoke", "field": "fac-opt", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_exhaustion", "line": 89, "action": {"type": "invoke", "field": "fac-rec", "args": [{"type": "i64", "value": "1073741824"}]}, "text": "call stack exhausted", "expected": [{"type": "i64"}]}]} + {"type": "assert_return", "line": 103, "action": {"type": "invoke", "field": "fac-rec", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 104, "action": {"type": "invoke", "field": "fac-iter", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 105, "action": {"type": "invoke", "field": "fac-rec-named", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 106, "action": {"type": "invoke", "field": "fac-iter-named", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 107, "action": {"type": "invoke", "field": "fac-opt", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_exhaustion", "line": 111, "action": {"type": "invoke", "field": "fac-rec", "args": [{"type": "i64", "value": "1073741824"}]}, "text": "call stack exhausted", "expected": [{"type": "i64"}]}]} diff --git a/tests/gen/float_exprs.38.wasm b/tests/gen/float_exprs.38.wasm index ca28d5e4d1e170825cd7cfae31423d0f24dfd1ab..952dab25d221484c6d2112a450270614b4fd59ae 100644 GIT binary patch literal 107 zcmZQbEY4+QU|?Y6WlCVGsb#E9V5+TQtYv0qVqj!9V-n8Gk55U>%`Zuf&&{kzO^Giq qO=4h>!6F);oS&OpT9TT=z{n-a#L1w*puo6$;Wlm%YqtU;kOcttgB{xd delta 44 zcmd0{mS9LM&Shj^U|?itOkk?1WvpdpVq{>Uc$jP9 diff --git a/tests/gen/float_exprs.39.wasm b/tests/gen/float_exprs.39.wasm index 20d1715bd5bdb4f594f44836068c1196493db446..e147759cb7b506b76450327d0ff6bb3883dfe65d 100644 GIT binary patch literal 107 zcmZQbEY4+QU|?Y6WlCVGsb#E9V5+TQtYv0qVqj!9V-n8Gk55U>%`Zuf&&{kzO^MGf q&0%1W!6F);oS&OpT9TT=z{n-a#L1w*puo6$(Kc=nYqtU;kOctu>mB6) literal 735 zcmaiwSqj216h&{Wa~<0W$aXV4ef}kxL<5%5}12~JrpF6YmA?eT4KselRxLkss zng{^GPIbjnEW08Up;dFDCy3~LnR}%j*K0K!qv-m9^n&p~&S%>1OC|e(zZlNuQUQ#k z6OLdU)1#4M9Mhv=xn8IJXHS}OOpii_aguwojAMEP|3MIEb?{lS{BI#VKSZgJWYHg`&d-6c+Y!tP3m OaCpS&NH{zxJ?%F@l;|1& diff --git a/tests/gen/float_exprs.40.wasm b/tests/gen/float_exprs.40.wasm index d363f76fb0a43cf6ef7c1a7f7fca2bd6e9da7b16..4504b4ff089343d816c8437fbc79404a57176492 100644 GIT binary patch literal 107 zcmZQbEY4+QU|?Y6WlCVGsb#E9V5+TQtYv0qVqj!9V-n8Gk55U>%`Zuf&&{kzO^Hv* qEMs7h!6F);oS&OpT9TT=z{n-a#L1w*puo6$@iuM{YqtU;kOctq%N@}G literal 116 zcmWN{F%E)I5QO2`*=GoDXsOr2#uG>frMJKk63|E?T9S7P?#oX3&5!5$5ddQBnK$&3 zWz(b~rzEkW)-*5k576&_2_2?!c!TFgOE_Hagk424TWy`r8w2-HXO~`=5XYl}nHAB; FYX{304#ofg diff --git a/tests/gen/float_exprs.41.wasm b/tests/gen/float_exprs.41.wasm index c6b9e24fb7b90a707195412ae109802208c32db9..20d1715bd5bdb4f594f44836068c1196493db446 100644 GIT binary patch literal 735 zcmaiwSqj216h&{Wa~<0W$aXV4ef}kxL<5%5}12~JrpF6YmA?eT4KselRxLkss zng{^GPIbjnEW08Up;dFDCy3~LnR}%j*K0K!qv-m9^n&p~&S%>1OC|e(zZlNuQUQ#k z6OLdU)1#4M9Mhv=xn8IJXHS}OOpii_aguwojAMEP|3MIEb?{lS{BI#VKSZgJWYHg`&d-6c+Y!tP3m OaCpS&NH{zxJ?%F@l;|1& literal 116 zcmWN{F%E)25QX74Giz3z*jf(-l_#Ksl3OexB(4Su!ETd1j2CrY`Mn?0z7haZPFxET zRVot1frMJKk63|E?T9S7P?#oX3&5!5$5ddQBnK$&3 zWz(b~rzEkW)-*5k576&_2_2?!c!TFgOE_Hagk424TWy`r8w2-HXO~`=5XYl}nHAB; FYX{304#ofg literal 192 zcmXxaF%E+;5Jb^gLt+EU9XLS>K-_?Wk^_)9O4eyY1#}>;jum^SdK!Ja=7|8%OtTZ=*6OYV^L*^tPbCQucsmPoZWKNniHvnz{Ph0>1 diff --git a/tests/gen/float_exprs.44.wasm b/tests/gen/float_exprs.44.wasm index 9650b94d6ef65a3ed6edc4a56b8550fa2bc39553..f194fc1498db2921b418d65064c758050c44841b 100644 GIT binary patch literal 192 zcmXxaF%E+;5Jb^gLt+EU9XLS>K-_?Wk^_)9O4eyY1#}>;jum^SdK!Ja=7|8%O}l?DS28#6 mEx5~FwR)4;z{1i=CyUZjUC-`%Ek$tv diff --git a/tests/gen/float_exprs.45.wasm b/tests/gen/float_exprs.45.wasm index d8d69bbb208ff97d2db8a8348d6f5c3452258c67..ce2b73f7abac1a135833c7e1febb807786b1bf1f 100644 GIT binary patch literal 337 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYPNl017fN0s;F$Mh?+5VtTZ=*6OYV^L*^tPbCQucsmPoZWKNniHvnz{Ph0>1 literal 440 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHS=HvhhF)#uF`%gv=nKWY~y}bPRwEUcu_?(jX z;?$hf}l?DS28#6 mEx5~FwR)4;z{1i=CyUZjUC-`%Ek$tv literal 432 zcmZ{fO%8%U3`Sdi1f8V|SM&8Z`bqwg}Kp^u{>R+s*n}DP5JhDjRjzs;N|VsR6huh(e}rwB>O{ zTYjSVyXjj2SF{x}#cs{GqOEB0!gvW14({1g&`Rh-2}1l>rzY6hF&pd09Hb*#*?mX1 a&&@S35{BM&8Z`bqwg}Kp^u{>R+s*n}DP5JhDjRjzs;N|VsR6huh(e}rwB>O{ zTYjSVyXjj2SF{x}#cs{GqOEB0!gvW14({1g&`Rh-2}1l>rzY6hF&pd09Hb*#*?mX1 a&&@S35{Bm;1XdJVo+dk{0{^S Ng`1p#8ct8*1^`)u4lMux diff --git a/tests/gen/float_exprs.52.wasm b/tests/gen/float_exprs.52.wasm index 61021fcf69b5e7178ae277b781687fcc6733b75c..3fd1baca496625adba491b9fe2af1d256e473c7a 100644 GIT binary patch literal 58 zcmZQbEY4+QU|?WmV@zPIWvpdpVq{m;1XdJVo+dk{0{^S Ng`1p#8ct8*1^`)u4lMux literal 114 zcmZQbEY4+QU|?VrXHHrQ?1C7- diff --git a/tests/gen/float_exprs.54.wasm b/tests/gen/float_exprs.54.wasm index 1572cc4298e33508637510149314629e6fb1a604..61021fcf69b5e7178ae277b781687fcc6733b75c 100644 GIT binary patch literal 64 zcmZQbEY4+QU|?WmXG~zKuV<`fW@2Pu7hvSc$tlZ?FDNoHH!wD1VBivG6lG9ga6J9L Ty`*T90;6L?!vyxiO_R6*m}d`+ literal 47 zcmZQbEY4+QU|?WmV@zPIWvpdpVq{?FW@OLID@!dZPGw-=;$h@saAsg=uvcK1$_)Up C-Up@t diff --git a/tests/gen/float_exprs.55.wasm b/tests/gen/float_exprs.55.wasm index fa832af0e49353c352a5b5eecd9f8f7cd14d35ff..4e3bde4866aefd2f84b6e59332e20a971ced7609 100644 GIT binary patch literal 114 zcmZQbEY4+QU|?VrXHHrQ?1C7- literal 98 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWLIYrNHaEyFD@)9iOghlSh#8OIcg diff --git a/tests/gen/float_exprs.56.wasm b/tests/gen/float_exprs.56.wasm index ef8bec6e156ac2617059afc1f00c76b2f50d6e43..1572cc4298e33508637510149314629e6fb1a604 100644 GIT binary patch literal 47 zcmZQbEY4+QU|?WmV@zPIWvpdpVq{?FW@OLID@!dZPGw-=;$h@saAsg=uvcK1$_)Up C-Up@t literal 126 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWH)6JPct^s%gc{X%g;%PFG@|$EP#*< t4B}~KCRk+{xwM%C7@Qdx8tlP@0>jj)+!72fKr4XYgFT#~z_55RHvoI?9t{8h diff --git a/tests/gen/float_exprs.57.wasm b/tests/gen/float_exprs.57.wasm index 15959e63292825423f6021762c1cd8f0cf0fed51..fa832af0e49353c352a5b5eecd9f8f7cd14d35ff 100644 GIT binary patch literal 98 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWLIYrNHaEyFD@)9iOghlSh#8OIcg literal 120 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj#qW|B%XHqy(>k59}=PfaRH%uJ3? tOH3}wFUrhIXJC*@Gc&;@$;c(k#LJ+-puji@L`S@fI%P1^_Ru9$EkZ diff --git a/tests/gen/float_exprs.58.wasm b/tests/gen/float_exprs.58.wasm index b8870a873c7cea29be912ef9733d076a4b814ef0..ef8bec6e156ac2617059afc1f00c76b2f50d6e43 100644 GIT binary patch literal 126 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWH)6JPct^s%gc{X%g;%PFG@|$EP#*< t4B}~KCRk+{xwM%C7@Qdx8tlP@0>jj)+!72fKr4XYgFT#~z_55RHvoI?9t{8h literal 120 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj#qW|B%XHqy(>k59}=PfaRH%uJ3? uOH3}wFUrhIXJC*@Gc&;@$;c(k#LJ)ngi{n46&R;X=7#VVfq07+asvP_k59}=PfaRH%uJ3? tOH3}wFUrhIXJC*@Gc&;@$;c(k#LJ+-puji@L`S@fI%P1^_Ru9$EkZ literal 235 zcmZvXK?=e!5JmqasY#n`yuoDaLPSN}dXlzK1))`;2yRL|gC};M3>=WnGs^eiZ$EMQ9;bG6Ek83mtszA!IfC>7V`@44}=r^Wk59}=PfaRH%uJ3? uOH3}wFUrhIXJC*@Gc&;@$;c(k#LJ)ngi{n46&R;X=7#VVfq07+asvP_g{}*uH&(}*UfyJ04u%m()FO?ta`EwW251M3>=WnGs^eiZ$EMQ9;bG6Ek83mtszA!IfC>7V`@44}=r^Wl1d<{GAOn*i1d|~I zAOJxGY9Rn10wDt+0YQIiA^{Bm3kx6u3n&2reF8uOKp+Aj04f3ik|6>h06_$5Apjr& zL4Rr?0U!Yl01FEs0t*X=2mt^=01JQ!#Kl)6rG&@}ZMaJ=@^%*-%1Txq8*XtTT^Am1 zzs(d}$01cwIh-G|QShUa*TF2VeyAuq0U`7XSd;idcb|hfYG1nd3fNI4iVt*WnnZP$qJ2KXVWG5|bk|VRjNoz?%h=>#T;}ls;AHjOg9u{FO((Rs$g* zOy<9P_J7s7a~#1GkHjaIv%NF_ctKylTF&-oZgZL!W^e=e&L^W%vY$J@`>yTNTKG3t z@bzx*u}yG2RHp%&g$PKI^_>i0hg;cH9#L(GjtGpUaXMBAXGV{Y6Dln1EFZLDD{nyx z#AQOFF>5S+KD%|ShLa2S62P7N?gEU?9P%Eacq7}y9!Ue!am)x%#n@c! z)wN};waFpU$tiZ;@Gu%%Jn}o+Iyr(m76@;s@xEzknQ^8C(-e~`7V<9<$9^EYkwotJ zD_pZ78Ae`@+mX|Jcx$&30FUdviuKek#K9ilb7NUY zNdpSE&m_;B4n%sM6#GKIojEX`psO#@uAXXxL*rF_g}-Bp_?8eK{%z+X8{uh2ibTlB z`3x%=2c-f&@-PsZg^FMAfkmKqu>%luORkumN57gaI@J#YX5&3m*+9-8Z!#|-DlBSVzto%`P=mK>Hw(h(V286-PSbKC9y``oT_p4V6ceD z;0sw=B~K}4`QtAB>DuKOPbXsZ&ZHrgbjMd@Cz?$CRDEI2!>or!ocjL>%6XS(By`Hu zA%i9*84@>S8Rcc*bajs1$nSK=*dZ%<1W`t1U;|zH*z{$jo?Ro_*NT#Wq~3Tu@mE4^ z&B-s-q@Jrl^vfI9qssj2rvb8>X--C)7*5@Jr>dq>IUesY%$vPi?o1(VFaUC}Mqdce z#kt@O)^H{hRdw&`tBZRP+-(}NYQ!bas^gzYNr}rhn+m4^U~t^G$b;cR L^}elQl&y`SSTY!m diff --git a/tests/gen/float_exprs.62.wasm b/tests/gen/float_exprs.62.wasm index 3e6561f5f4e9f2fbfe3b38a9f7ef777700d530ec..2387d2d9822517c224400b120afec7ef0d01bb54 100644 GIT binary patch literal 283 zcmb7;zY4-I5Ql%4v`yML)UD%X7MzOU=##XCS`bg{}*uH&(}*UfyJ04u%m()FO?ta`EwW2517 zD3TcL2(IT<+Oei(rE*Y58@Q=d*QN$r4?$5JRBAE^WM8g;R2Wtwg*qJXNwJ znshpz;n)vw{HZ$4lS}O5e%)Os&G?|591*}*F8#<8GR!&}eWO8D?ZbjeDg++ybGa@q z<6rdO=CU&kIX`biY6HPSx%#ol?WI_mf95$8o%!zz$5t&| z@SR=W{J5+_%NHAM6$^A-(=PaHhP1kKQd60!b|6K`K!9r$?V5c=9t7+zr-A*ka{+h6uK3OZswdfjP%|TB3+?*P-hK2dg;`vE`KU|Fg@yB5=j2x z7|oOVv^3zI_R9WDJ9uphTo|8Wx!ttj4|d=iX$@Xjb8ub` zEunq?AnTDdlB_s#Dj$wyyJRP|3@MO>2uD+wpJ|cZiX(3}5?E?Z- znh#J;6IwN)BBbAj!gP5SxM^viQe6>by<3y~X`u8I(1B6i`V1ArddXsXsU6AYTC-c1 z0z70Q5(0+sdvKG4LCG#OAK z3cOI-JTTTeF_euu{_hl5olBDdmLv>s{k$V~0&MG2a)1$jfI1TrI2|}il|UzoM0@Dm zZH$bLJhihJ4)zEdgh4g`i@1|O>fuoxiKUG~XesJ1!Fp2bkX=pIfaBM7NY3rk0UV86 zrIZbL&+!HmFPH+PZ7yu`)pRL|O!))##~7`8@M!p4)>(&c);|Wmh9KiXks|YMi|}Y1 zSEu~2e4d#LmKup)<_&xZQJ|t{nnwVWYxyYfXxn1(;AJdRGvKGn5kfHbuK~ejJu(4r zt1iCNi@p@Y|Lptl`Na$cZvhEw<1{f0A7-XPyc&l|78Z=KkPS493gHP}5Tt8X%<##( z+_+rM_RNiSezOON1TVB+$>T~Ra~Wc6nge!3hMZvh+j5U5pxv{@+W-0NYO#CM&rmnX zdUy=vI=1!Z^q6i!eKm87MZi{<&27%ltueF1RQm7L!1QWgROd-PGYT*`{n-Wor9W3j z6t$5T%4?V-dS$b00<_F|U0B$&)s(LEZFOb$lD~dOOg!$}tno5k`)@%UG{}Qb!dL;m z1wLjLrUY$WPlgF6f+Z5oI?c{&yvnR7o9=2QhMq-m#?rkzeM03Yug4wqfylFVil{cD zt}5mj;Wi?z_9b$#Ig0_BB720xEnjk^n5-3W=hPVDebO*|GYHMf#3F@=b%Dl8bXbkx z=&Z%7bz1Z&67U#BQu3FwlRBX+kc%G>Ytg}Qy z;JjTMoJm+p92rT$I_mZ7JAtW7a16|z8q+VgQZFDo>tsvt@wUy$i;ucsFx=S+4Lc5>H`V;_m(?@d0%`>FrQX6 z-n4VnmGBh9bT18~9ZrogB(oZXg<@KJJQO(>=56aY!T?xX3*$VBV&V8TOIG5CV2i$| zIFWZ$sahl@ke{VOck^61-~V(6cA?E5Vhe$RXs-pqz<(z0z>%YBeJNo@C*@a&+zpom z8Z)UxirNAYML&*Jrgn@?bwx~I?3W>`%`7m$F!&W)CE%|(9J1`09GX=eOE+ggSB(xO&+e3FtW5CQk&;195JOM0;F;S)9`3!@60fHnS?@H;ycA& z5?m-vwhm6nT<8Ic#pmRmLhfCh#Ov#52`7@3nh{iU#1eq}eg4G=V1G72;1IgjD{S$! z7yc$R<4gFci7@!wxQ?CRD2hj#e*y vuOftKrHhyLr2VMObwQSf{U<#shK+wr)Q)pO^d92fSSOdxoRrUc1TWm}vyure diff --git a/tests/gen/float_exprs.63.wasm b/tests/gen/float_exprs.63.wasm index fba3bcf97217a9467b201796bb7c348e74fda8c4..c17811c135b9781c450f071f2beae7e66dfea6cf 100644 GIT binary patch literal 1197 zcmV;e1XB9|VRLN(000012LWILe}4ge0|Np800jgA0RaIAAp#9%Gcqn~VQ67)UvqVB z000eUGcqo4Y+-3`UvqVB009bO0yhBzeF8uOKp+Dk04f3iAOw>l1d<{GAOn*i1d|~I zAOJxGY9Rn10wDt+0YQIiA^{Bm3kx6u3n&2reF8uOKp+Aj04f3ik|6>h06_$5Apjr& zL4Rr?0U!Yl01FEs0t*X=2mt^=01JQ!#Kl)6rG&@}ZMaJ=@^%*-%1Txq8*XtTT^Am1 zzs(d}$01cwIh-G|QShUa*TF2VeyAuq0U`7XSd;idcb|hfYG1nd3fNI4iVt*WnnZP$qJ2KXVWG5|bk|VRjNoz?%h=>#T;}ls;AHjOg9u{FO((Rs$g* zOy<9P_J7s7a~#1GkHjaIv%NF_ctKylTF&-oZgZL!W^e=e&L^W%vY$J@`>yTNTKG3t z@bzx*u}yG2RHp%&g$PKI^_>i0hg;cH9#L(GjtGpUaXMBAXGV{Y6Dln1EFZLDD{nyx z#AQOFF>5S+KD%|ShLa2S62P7N?gEU?9P%Eacq7}y9!Ue!am)x%#n@c! z)wN};waFpU$tiZ;@Gu%%Jn}o+Iyr(m76@;s@xEzknQ^8C(-e~`7V<9<$9^EYkwotJ zD_pZ78Ae`@+mX|Jcx$&30FUdviuKek#K9ilb7NUY zNdpSE&m_;B4n%sM6#GKIojEX`psO#@uAXXxL*rF_g}-Bp_?8eK{%z+X8{uh2ibTlB z`3x%=2c-f&@-PsZg^FMAfkmKqu>%luORkumN57gaI@J#YX5&3m*+9-8Z!#|-DlBSVzto%`P=mK>Hw(h(V286-PSbKC9y``oT_p4V6ceD z;0sw=B~K}4`QtAB>DuKOPbXsZ&ZHrgbjMd@Cz?$CRDEI2!>or!ocjL>%6XS(By`Hu zA%i9*84@>S8Rcc*bajs1$nSK=*dZ%<1W`t1U;|zH*z{$jo?Ro_*NT#Wq~3Tu@mE4^ z&B-s-q@Jrl^vfI9qssj2rvb8>X--C)7*5@Jr>dq>IUesY%$vPi?o1(VFaUC}Mqdce z#kt@O)^H{hRdw&`tBZRP+-(}NYQ!bas^gzYNr}rhn+m4^U~t^G$b;cR L^}elQl&y`SSTY!m literal 96 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj#~WfD#^Hqy(>k59|bNr}%(O^+`w gO=4gWPBSyX5M|^NX5wH_U{GM3+`|oFES$v+06Z}k$N&HU diff --git a/tests/gen/float_exprs.64.wasm b/tests/gen/float_exprs.64.wasm index ca400ce4cbd33d821ad612c36af1202a58e92329..3e6561f5f4e9f2fbfe3b38a9f7ef777700d530ec 100644 GIT binary patch literal 2221 zcmV;e2vYX|VRLN(000012LWILe}4gd0|Np800jgA0RaIAAp#9%HZ(44VQ67)UvqVB z000eUHZ(49Y+-3`UvqVB009bO0yhBzd;&lNKp+Dk04oCkAOxWz1fU`UAOoQw1fd}W zAOJxKY9Rn10wDt+0YQIiA^{Bm3kx6u3n&2rd;&lNKp+Aj04oCkpdkVv06_?9Apjr& zL4Rr?0U!Yl01FEs0t*X=5CH%|01JQ+69t4qU7{?;L)%rU&DvGtbNpD=y43*vgEc~k zixXWqN=FTHbD7 zD3TcL2(IT<+Oei(rE*Y58@Q=d*QN$r4?$5JRBAE^WM8g;R2Wtwg*qJXNwJ znshpz;n)vw{HZ$4lS}O5e%)Os&G?|591*}*F8#<8GR!&}eWO8D?ZbjeDg++ybGa@q z<6rdO=CU&kIX`biY6HPSx%#ol?WI_mf95$8o%!zz$5t&| z@SR=W{J5+_%NHAM6$^A-(=PaHhP1kKQd60!b|6K`K!9r$?V5c=9t7+zr-A*ka{+h6uK3OZswdfjP%|TB3+?*P-hK2dg;`vE`KU|Fg@yB5=j2x z7|oOVv^3zI_R9WDJ9uphTo|8Wx!ttj4|d=iX$@Xjb8ub` zEunq?AnTDdlB_s#Dj$wyyJRP|3@MO>2uD+wpJ|cZiX(3}5?E?Z- znh#J;6IwN)BBbAj!gP5SxM^viQe6>by<3y~X`u8I(1B6i`V1ArddXsXsU6AYTC-c1 z0z70Q5(0+sdvKG4LCG#OAK z3cOI-JTTTeF_euu{_hl5olBDdmLv>s{k$V~0&MG2a)1$jfI1TrI2|}il|UzoM0@Dm zZH$bLJhihJ4)zEdgh4g`i@1|O>fuoxiKUG~XesJ1!Fp2bkX=pIfaBM7NY3rk0UV86 zrIZbL&+!HmFPH+PZ7yu`)pRL|O!))##~7`8@M!p4)>(&c);|Wmh9KiXks|YMi|}Y1 zSEu~2e4d#LmKup)<_&xZQJ|t{nnwVWYxyYfXxn1(;AJdRGvKGn5kfHbuK~ejJu(4r zt1iCNi@p@Y|Lptl`Na$cZvhEw<1{f0A7-XPyc&l|78Z=KkPS493gHP}5Tt8X%<##( z+_+rM_RNiSezOON1TVB+$>T~Ra~Wc6nge!3hMZvh+j5U5pxv{@+W-0NYO#CM&rmnX zdUy=vI=1!Z^q6i!eKm87MZi{<&27%ltueF1RQm7L!1QWgROd-PGYT*`{n-Wor9W3j z6t$5T%4?V-dS$b00<_F|U0B$&)s(LEZFOb$lD~dOOg!$}tno5k`)@%UG{}Qb!dL;m z1wLjLrUY$WPlgF6f+Z5oI?c{&yvnR7o9=2QhMq-m#?rkzeM03Yug4wqfylFVil{cD zt}5mj;Wi?z_9b$#Ig0_BB720xEnjk^n5-3W=hPVDebO*|GYHMf#3F@=b%Dl8bXbkx z=&Z%7bz1Z&67U#BQu3FwlRBX+kc%G>Ytg}Qy z;JjTMoJm+p92rT$I_mZ7JAtW7a16|z8q+VgQZFDo>tsvt@wUy$i;ucsFx=S+4Lc5>H`V;_m(?@d0%`>FrQX6 z-n4VnmGBh9bT18~9ZrogB(oZXg<@KJJQO(>=56aY!T?xX3*$VBV&V8TOIG5CV2i$| zIFWZ$sahl@ke{VOck^61-~V(6cA?E5Vhe$RXs-pqz<(z0z>%YBeJNo@C*@a&+zpom z8Z)UxirNAYML&*Jrgn@?bwx~I?3W>`%`7m$F!&W)CE%|(9J1`09GX=eOE+ggSB(xO&+e3FtW5CQk&;195JOM0;F;S)9`3!@60fHnS?@H;ycA& z5?m-vwhm6nT<8Ic#pmRmLhfCh#Ov#52`7@3nh{iU#1eq}eg4G=V1G72;1IgjD{S$! z7yc$R<4gFci7@!wxQ?CRD2hj#e*y vuOftKrHhyLr2VMObwQSf{U<#shK+wr)Q)pO^d92fSSOdxoRrUc1TWm}vyure literal 96 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj#~WfD#^Hqy(>k59|bNr}%(O^;7Z gNnv0RPBSyX5M|^NX5wH_U{GM3)WZ#7ESSX&05Y-`ga7~l diff --git a/tests/gen/float_exprs.65.wasm b/tests/gen/float_exprs.65.wasm index f5ddcf462e2d66abb79febbabceb49e097bcb3e9..fba3bcf97217a9467b201796bb7c348e74fda8c4 100644 GIT binary patch delta 72 zcmc~wm>}z{%Osp;Y^0Z$AD@<=lMk59|bNr}%(O^;7Z gNnv0RPBSyX5M|^NX5wH_U{GM3)WZ#7ESSX&05Y-`ga7~l literal 94 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWY=X9PBS*r%gc{X%g;%PPfSUP&r3~b gU=U6-Grk59|bNr_KPNr}%( mO$T8H2JtjA6Ra|fT%t^z3-#*%S?<< jOi5v25KA*N!6w1TrO71Bpa6uEkP$aTY=Hs;0&xQX%@!Pm diff --git a/tests/gen/float_exprs.68.wasm b/tests/gen/float_exprs.68.wasm index 39d64d72d6e88914668280d5438f7331fb02796e..13ba4d5a54933c269493046c8a0c304103ec0998 100644 GIT binary patch literal 94 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWY=X9PBS*r%gc{X%g;%PPfSUP&r3~b gU=U6-GrPW@chwWY=X9PBS*r%gc{X%g;%PPsuC; jVFm`_G&2(nQARFtCN2gA1_j2c3QSYEA-#*%S?<< jOi5v25KA*N!6w1TrO71Bpa6uEkP$aTY=Hs;0&xQX%@!Pm literal 112 zcmZQbEY4+QU|?VrWJ+ME1p>y}1eO{gV60(gW@2Du*Jlz*Gd9x8%a2dX&q;~TEzOBf q$t){oU=T?&Gr<&Q(^b diff --git a/tests/gen/float_exprs.71.wasm b/tests/gen/float_exprs.71.wasm index fe18d15da7ae5b837e9366dd78bb6f648638137e..410dfbc269d163b2c0744a260edfc835c8c35d73 100644 GIT binary patch literal 112 zcmZQbEY4+QU|?VrWJ+ME1p>y}1eO{gV60(gW@2Du*Jlz*Gd9x8%a2dX&q;~TEzOBf q$t){oU=T?&Gr<&QPW@chwWY=dBNi#Om%gc{X%g;%PPfSUP pPsuDRW?&FWGc&;yX5^A(;$=`^P+*#>zz8HJaYJ~ELA=EaxBk59|bNr}%b&518A mEGj8xU=U3+Gr=Ox$R*0e$)Lb6QGs#d6mAe}z5?U?Mce=dV;UX+ diff --git a/tests/gen/float_exprs.73.wasm b/tests/gen/float_exprs.73.wasm index abbf750b18416c151980a101b1cfcfc01fb23a08..fe18d15da7ae5b837e9366dd78bb6f648638137e 100644 GIT binary patch literal 102 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWH)6JPct^s%gc{X%g;%PFD@)90TQK& fMX3x7;%R0kSY;Twgqb)P6o7EbL~aOU(R^+I^$!`7 literal 102 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj!9WD-p?Hqy(>k59|bNr_L%EQ>EL mEGj8xU=U3+Gr=Ox$R*0e$)Lb6QGs#dRBjM!z5?U?#oPb^Z5j#y diff --git a/tests/gen/float_exprs.74.wasm b/tests/gen/float_exprs.74.wasm index add2c0ab20d3b2a7c5e23a087b68ea431c1d32ca..eef3768648d809d109e11f51d2ac28762a5c5497 100644 GIT binary patch delta 62 zcmXR&n;^?<$Rs*ZLByz-fk8CQ%tS9QKRzu#CnY|&G$+2eu&AV%fssp;iIYKrVWI-# P#3|e$)_euV`HQ##0q+mk delta 72 zcmYc*m>|n+&LlBWLBu9LC9{lyK_bn}L@zHtJ}o~dB|f(_C%(9_s01v<$R)|d&7i=b Uz&LS=0^?L}2z&k_1;)kP0M-H$o&W#< diff --git a/tests/gen/float_exprs.75.wasm b/tests/gen/float_exprs.75.wasm index 315d6494e24c4eeefa1b1bc9b2af9640fc61e974..abbf750b18416c151980a101b1cfcfc01fb23a08 100644 GIT binary patch literal 102 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj!9WD-p?Hqy(>k59|bNr_L%EQ>EL mEGj8xU=U3+Gr=Ox$R*0e$)Lb6QGs#dRBjM!z5?U?#oPb^Z5j#y literal 134 zcmZQbEY4+QU|?Y6XG&nMt*vFOO<=C6sbQ>PW@chwWcOuKPBS*r%gc{X%PB3+h|kO` zNiE7vP036wNsTWqP0GtJ%1z8+U{FpoGa;yokxQJ3i$Q@wfpLlg(-dw9bCCkmB5nW; C_9gKE diff --git a/tests/gen/float_exprs.76.wasm b/tests/gen/float_exprs.76.wasm index 10b819568083a14070762737ec43c0c904f28500..add2c0ab20d3b2a7c5e23a087b68ea431c1d32ca 100644 GIT binary patch literal 112 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj!9XOc)WHqy(>k59|bNr}%b&518A rEGmgl$t+`FkVrE#!7jzfCCS9ipunKOIB|*s<5X@4d;TH?#>LzKK6xD4 literal 246 zcmZQbEY4+QU|?VrW=>$Lt!1oFV5+GBleLVs%pB|>DMm&n_Ih^yG-D&ZqSWO4l+3*J z_|!rM22_!pR0c*gkrDPW@chwWcOuKPBS*r%gc{X%PB3+h|kO` zNiE7vP036wNsTWqP0GtJ%1z8+U{FpoGa;yokxQJ3i$Q@wfpLlg(-dw9bCCkmB5nW; C_9gKE literal 122 zcmZQbEY4+QU|?Y6XG&nMt*vFOPhhU8sbQ>VW@chwWOrneO*1yq%gc{Xttd&&OG!p*8^T$Lt!1oFV5+GBleLVs%pB|>DMm&n_Ih^yG-D&ZqSWO4l+3*J z_|!rM22_!pR0c*gkrD@- diff --git a/tests/gen/float_exprs.79.wasm b/tests/gen/float_exprs.79.wasm index 687aad0de19a7254dd9173177f7fbddeef36ad8e..18103680c67165a46a70dadfbd8c13243f6148c6 100644 GIT binary patch literal 122 zcmZQbEY4+QU|?Y6XG&nMt*vFOPhhU8sbQ>VW@chwWOrneO*1yq%gc{Xttd&&OG!p*8^ThSBpbXeG#y&&tmszi|h^N>$ z^WMxSEjFi50zj{$m~zTvm2$TLDaqAe3W89mnW7I}89m8he N;K8UX$Efd({sS*FUoZdw diff --git a/tests/gen/float_exprs.80.wasm b/tests/gen/float_exprs.80.wasm index 226f08ce9b1878f103f80dc87ae9228e5edac34e..c25f9c43af0b131635c7bff85ae25f6db1c71501 100644 GIT binary patch literal 132 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWH)6JPct^s%gc{X$t*4@%1kOPNsUjf zNK7taU=U9;Gr=mu$YsbR%-{?(@t^|36cFtQq$hDpGq?cRK%j6yfngDh?Eqvi;06FU C=N>@- literal 231 zcmZ9EI|{;36hvoU3c-*fJGi{g#zMt5LfnIef{C9%ilF!biv(OltcB-FvL%;bo=Gfh zE_3G`2Jtx~0D3A?MZqFcdCuH%6xbUmKN*jP+e3D|UiRx#yi0F@pG+rz9s5tJ5Y9{> zC^bUh9+ZNI4OLlRVCljA3T&vR6@=CSRy7s6i+00k%xw+410#5KPi5K!#J{}`21e7$ K!p;Xa&F%*`N-Pur diff --git a/tests/gen/float_exprs.81.wasm b/tests/gen/float_exprs.81.wasm index e6489b12ee5f94834103f420882da096349644eb..687aad0de19a7254dd9173177f7fbddeef36ad8e 100644 GIT binary patch literal 388 zcmZ9HJ#NB45QX3DuEBVPK#D}YZJHD~<~o=k(?lr(E>hSBpbXeG#y&&tmszi|h^N>$ z^WMxSEjFi50zj{$m~zTvm2$TLDaqAe3W89mnW7I}89m8he N;K8UX$Efd({sS*FUoZdw literal 126 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj!9XOc)WHqy(>k59|bNr^8mO)`wn zEzOBfOi5v2kVrE#!7jzfrOqV4puphFz|denS%Gni0^=lZ5uktz&>|rCV82j-aghS! G0&W1RydIYT diff --git a/tests/gen/float_exprs.82.wasm b/tests/gen/float_exprs.82.wasm index b0ba33f992bc218bf25d314f61cda63f94a8aa44..226f08ce9b1878f103f80dc87ae9228e5edac34e 100644 GIT binary patch literal 231 zcmZ9EI|{;36hvoU3c-*fJGi{g#zMt5LfnIef{C9%ilF!biv(OltcB-FvL%;bo=Gfh zE_3G`2Jtx~0D3A?MZqFcdCuH%6xbUmKN*jP+e3D|UiRx#yi0F@pG+rz9s5tJ5Y9{> zC^bUh9+ZNI4OLlRVCljA3T&vR6@=CSRy7s6i+00k%xw+410#5KPi5K!#J{}`21e7$ K!p;Xa&F%*`N-Pur literal 231 zcmZQbEY4+QU|?Y6XG&nMt*vFOPhhU8sbQ>VW@Q12GO~9vvdE_y8|mfc$EW4zq{Jtt zq{Qc>#^>he<(K5=WhQ5qR5CDNs7Oas!6=_*W`frYCJYtmW-xPEvhXq}FeorhQeXrU U@!ZI~1SoF-NNzzY3NMWt0OamKtN;K2 diff --git a/tests/gen/float_exprs.83.wasm b/tests/gen/float_exprs.83.wasm index b34801139900aa6d2f8c94eda5c7b4052dd641c7..e6489b12ee5f94834103f420882da096349644eb 100644 GIT binary patch literal 126 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj!9XOc)WHqy(>k59|bNr^8mO)`wn zEzOBfOi5v2kVrE#!7jzfrOqV4puphFz|denS%Gni0^=lZ5uktz&>|rCV82j-aghS! G0&W1RydIYT literal 216 zcmYMrK@Ng25QX74twJgB4xE667;nIWLnt*mH6#KHyM%Cco0y@q`u<5C9^a7w&`CM9 zuCzI|EVSvu#3v|TJ{aqpb3M(W{{$cfgZ6j_s1yus{q-W7Lkh-mkGRQFFml@&g9;Vh T+VYQHa2GhiQ^10kz_;ZOzk@13 diff --git a/tests/gen/float_exprs.84.wasm b/tests/gen/float_exprs.84.wasm index 413a38416431151746f4521c3fb2caa8d2eec396..b0ba33f992bc218bf25d314f61cda63f94a8aa44 100644 GIT binary patch literal 231 zcmZQbEY4+QU|?Y6XG&nMt*vFOPhhU8sbQ>VW@Q12GO~9vvdE_y8|mfc$EW4zq{Jtt zq{Qc>#^>he<(K5=WhQ5qR5CDNs7Oas!6=_*W`frYCJYtmW-xPEvhXq}FeorhQeXrU U@!ZI~1SoF-NNzzY3NMWt0OamKtN;K2 literal 142 zcmZQbEY4+QU|?Y6WJ+LQtOep4W@aV^Ms`^y?lfZ~z0`u@%$)o@1_tglGZQ$Ekt>u* zp23-cp}`(VI5>bQuWeC6+91e@&iWV+f$PEBf CcNzHr diff --git a/tests/gen/float_exprs.85.wasm b/tests/gen/float_exprs.85.wasm index 7f542c9297aa9a9530157bd4cb97115c413501cf..b34801139900aa6d2f8c94eda5c7b4052dd641c7 100644 GIT binary patch literal 216 zcmYMrK@Ng25QX74twJgB4xE667;nIWLnt*mH6#KHyM%Cco0y@q`u<5C9^a7w&`CM9 zuCzI|EVSvu#3v|TJ{aqpb3M(W{{$cfgZ6j_s1yus{q-W7Lkh-mkGRQFFml@&g9;Vh T+VYQHa2GhiQ^10kz_;ZOzk@13 literal 160 zcmZQbEY4+QU|?Y6WJ+LQtOep4W@aV^Ms`^y?lfZ~z0`u@%$)o@1_tglGZQ$Ekt>}^ zi;=0;nSr6fUXg*>L4iSu5y)Y%pQ6M77Muho<9Hdk6&Sg#7@2BZfU-dF0j?Y>@W6hN O5(8Xv0i2Zr(Fy?h*&CSv diff --git a/tests/gen/float_exprs.86.wasm b/tests/gen/float_exprs.86.wasm index f8608e0c5977cf2e814203b70f8e4a4b0a3ff5d2..413a38416431151746f4521c3fb2caa8d2eec396 100644 GIT binary patch literal 142 zcmZQbEY4+QU|?Y6WJ+LQtOep4W@aV^Ms`^y?lfZ~z0`u@%$)o@1_tglGZQ$Ekt>u* zp23-cp}`(VI5>bQuWeC6+91e@&iWV+f$PEBf CcNzHr literal 337 zcmZw9K@Ng25QX74MFl17H~=Sbp~l-tYoJvUkyyJifp9KwXGhbOoy8>IpUL3->E@9Ys8G>~m$La!l2r%QEE%M}=Rpn21Zh?q)UtGtVKp}Y0DqlRl>h($ diff --git a/tests/gen/float_exprs.87.wasm b/tests/gen/float_exprs.87.wasm index 8bc5cd88ff1b4c67167a2381f05278920fecddb5..7f542c9297aa9a9530157bd4cb97115c413501cf 100644 GIT binary patch literal 160 zcmZQbEY4+QU|?Y6WJ+LQtOep4W@aV^Ms`^y?lfZ~z0`u@%$)o@1_tglGZQ$Ekt>}^ zi;=0;nSr6fUXg*>L4iSu5y)Y%pQ6M77Muho<9Hdk6&Sg#7@2BZfU-dF0j?Y>@W6hN O5(8Xv0i2Zr(Fy?h*&CSv literal 964 zcmaKq%}&BV6ov1!Xcbh%65N!ePhk9uTjI}q3jkPPbt4{0zUgF4}dTvoX&Niqpb4vQ#1 zvRZAQ93L32<=xn(XEiA^7;RWy*YG^kWdIubO@leiY8suaO?0%mx%>sG+CDp7F+tYQ zUpgVDqrGy%S~-HCZKucNVD})n{QiVAYL)Ud|$1`cm#0&QF zud-SK9VR-Nyo}C$-~Ur?3n^vBiz^Cd9!G@=zXP2FpW_Rj#rmDWLt4g$u(*s}!P~f? zV)rHg9pNdNp#lm%H_}>^^J~vy&JVbe*5cfpIiBGMb4|nfS2!2zU1ZiEb~r?^V9q=KK(rSGrg%l`phzeQO9 diff --git a/tests/gen/float_exprs.88.wasm b/tests/gen/float_exprs.88.wasm index 66f2bfa699669a5fa735908740e7e27aeb3d94b3..f8608e0c5977cf2e814203b70f8e4a4b0a3ff5d2 100644 GIT binary patch literal 337 zcmZw9K@Ng25QX74MFl17H~=Sbp~l-tYoJvUkyyJifp9KwXGhbOoy8>IpUL3->E@9Ys8G>~m$La!l2r%QEE%M}=Rpn21Zh?q)UtGtVKp}Y0DqlRl>h($ literal 135 zcmZQbEY4+QU|?Y6WlZ3xfda-FW@aV^26iJR;gtN6_=2MRl+xsq_|%HT+=84`1_p`p z%#w`wq|Cg;qRRN<(%ksu{G6P`g5p#LMlMq(Nd^T51(rn$j0&ua7AP<&umMSC1@=V? LxG`lQ5(~Hi(Gw&O diff --git a/tests/gen/float_exprs.89.wasm b/tests/gen/float_exprs.89.wasm index 7fefd64cbeba5d8bc2773f324c0d3aa463cef60f..8bc5cd88ff1b4c67167a2381f05278920fecddb5 100644 GIT binary patch literal 964 zcmaKq%}&BV6ov1!Xcbh%65N!ePhk9uTjI}q3jkPPbt4{0zUgF4}dTvoX&Niqpb4vQ#1 zvRZAQ93L32<=xn(XEiA^7;RWy*YG^kWdIubO@leiY8suaO?0%mx%>sG+CDp7F+tYQ zUpgVDqrGy%S~-HCZKucNVD})n{QiVAYL)Ud|$1`cm#0&QF zud-SK9VR-Nyo}C$-~Ur?3n^vBiz^Cd9!G@=zXP2FpW_Rj#rmDWLt4g$u(*s}!P~f? zV)rHg9pNdNp#lm%H_}>^^J~vy&JVbe*5cfpIiBGMb4|nfS2!2zU1ZiEb~r?^V9q=KK(rSGrg%l`phzeQO9 literal 102 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj!fXA(#=HquMZ&nqcPOfE4>%S~ip m5J)pKK^0=;l4s&$PyoUy3XBSjQzlR3hHw{wxQiCf=LP_Urxy+Y diff --git a/tests/gen/float_exprs.90.wasm b/tests/gen/float_exprs.90.wasm index 7e53886a4c2031b9f68b603142681332a1d1d0c8..66f2bfa699669a5fa735908740e7e27aeb3d94b3 100644 GIT binary patch literal 135 zcmZQbEY4+QU|?Y6WlZ3xfda-FW@aV^26iJR;gtN6_=2MRl+xsq_|%HT+=84`1_p`p z%#w`wq|Cg;qRRN<(%ksu{G6P`g5p#LMlMq(Nd^T51(rn$j0&ua7AP<&umMSC1@=V? LxG`lQ5(~Hi(Gw&O literal 120 zcmZQbEY4+QU|?Y6XG&nMt*vFOO<=C6sbQ>PW@chwWVdIMNi#OmOUW$DEY8f&i%+VI tFV0QO$%)S^%}q)zVqlO-Gc&<0&B!Ir#KoY%puniWG<7mJjJbFrHvpXCAO8RV diff --git a/tests/gen/float_exprs.91.wasm b/tests/gen/float_exprs.91.wasm index 97da0e6c0445c979ad40717aa8c476a3f5079b3a..7fefd64cbeba5d8bc2773f324c0d3aa463cef60f 100644 GIT binary patch literal 102 zcmZQbEY4+QU|?Y6WlCVGt!1oDV5+HMtYKzmVqj!fXA(#=HquMZ&nqcPOfE4>%S~ip m5J)pKK^0=;l4s&$PyoUy3XBSjQzlR3hHw{wxQiCf=LP_Urxy+Y literal 98 zcmZQbEY4+QU|?Y6XG&nMt*vFOO<=C6sbQ>PW@chwWLIYrNHaFlOV7_qNzIEdN-W9D jXJ8OWGc!RIV&sx!;$~1_P+(MGnmB0+H;g@h!6I$|WK|aL diff --git a/tests/gen/float_exprs.92.wasm b/tests/gen/float_exprs.92.wasm index be60329b83218b39c9dc5db26eff89a5c83da1b8..7e53886a4c2031b9f68b603142681332a1d1d0c8 100644 GIT binary patch literal 120 zcmZQbEY4+QU|?Y6XG&nMt*vFOO<=C6sbQ>PW@chwWVdIMNi#OmOUW$DEY8f&i%+VI tFV0QO$%)S^%}q)zVqlO-Gc&<0&B!Ir#KoY%puniWG<7mJjJbFrHvpXCAO8RV literal 126 zcmZQbEY4+QU|?Y6W=deJWvoqLtYNHSW@chwWLIYrNHaFlE6&U*OD&4eO-;-zW?&FV zGc!RIV&t-95@&D*nqjZN0D@D1>;{KP6DLjKmS=DQiUYv|sN5nbU%+9(`~{1+0k;Di AH2?qr diff --git a/tests/gen/float_exprs.93.wasm b/tests/gen/float_exprs.93.wasm index da5cc6ed34e98a76be577cd9c040721080466d65..97da0e6c0445c979ad40717aa8c476a3f5079b3a 100644 GIT binary patch literal 98 zcmZQbEY4+QU|?Y6XG&nMt*vFOO<=C6sbQ>PW@chwWLIYrNHaFlOV7_qNzIEdN-W9D jXJ8OWGc!RIV&sx!;$~1_P+(MGnmB0+H;g@h!6I$|WK|aL literal 58 zcmZQbEY4+QU|?WmXG~zKsbQ>VW@2Pu=VRn5$j{6xiBHQfEn;Bc5@r-+P+(ACT;{KP6DLjKmS=DQiUYv|sN5nbU%+9(`~{1+0k;Di AH2?qr literal 235 zcmZQbEY4+QU|?WmV@zPIXRKjnVq{=vXJjr(EM;KeI?c##s#PX3=|oe926KF z89jIzpkg2F6`2sy%*+l7j0!LT1qTIYsGNesA|)2MmIaHUOaTW4n5clmg2fAACLx4H qunS9ogcmJPWQ5!B!G3`vGu-M8_KOsmfG(}iQexm`;O16fVW@2Pu=VRn5$j{6xiBHQfEn;Bc5@r-+P+(ACTk59|bNr_L+&r8WH z$;{77%!$v;OJ-n@PBSyXDa*)Z$|TC50EEsA3=Q^^6c~Xt14FDdw=7uH1;k@u_+Y<4 Nff34PU`Uqc1^|0LAj$v$ diff --git a/tests/gen/float_exprs.96.wasm b/tests/gen/float_exprs.96.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7403a43dc74731148b9fa7e3ed93ed99022b00c8 GIT binary patch literal 235 zcmZQbEY4+QU|?WmV@zPIXRKjnVq{=vXJjr(EM;KeI?c##s#PX3=|oe926KF z89jIzpkg2F6`2sy%*+l7j0!LT1qTIYsGNesA|)2MmIaHUOaTW4n5clmg2fAACLx4H qunS9ogcmJPWQ5!B!G3`vGu-M8_KOsmfG(}iQexm`;O16fk59|bNr_L+&r8WH z$;{77%!$v;OJ-n@PBSyXDa*)Z$|TC50EEsA3=Q^^6c~Xt14FDdw=7uH1;k@u_+Y<4 Nff34PU`Uqc1^|0LAj$v$ literal 0 HcmV?d00001 diff --git a/tests/gen/float_exprs.json b/tests/gen/float_exprs.json index eafb9a8..80b3472 100644 --- a/tests/gen/float_exprs.json +++ b/tests/gen/float_exprs.json @@ -308,595 +308,622 @@ {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "module", "line": 654, "filename": "float_exprs.37.wasm"}, - {"type": "assert_return", "line": 661, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4183652368636204281"}, {"type": "f32", "value": "69183310"}]}, "expected": [{"type": "f32", "value": "276467023"}]}, - {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4773927428111915216"}, {"type": "f32", "value": "1387972204"}]}, "expected": [{"type": "f32", "value": "1392270651"}]}, - {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4072985553596038423"}, {"type": "f32", "value": "2202918851"}]}, "expected": [{"type": "f32", "value": "66813087"}]}, - {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "13740716732336801211"}, {"type": "f32", "value": "822392741"}]}, "expected": [{"type": "f32", "value": "3045484077"}]}, - {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "13742514716462174325"}, {"type": "f32", "value": "2870112826"}]}, "expected": [{"type": "f32", "value": "3048850075"}]}, - {"type": "assert_return", "line": 667, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "69183310"}, {"type": "f64", "value": "4183652368636204281"}]}, "expected": [{"type": "f32", "value": "276467023"}]}, - {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "1387972204"}, {"type": "f64", "value": "4773927428111915216"}]}, "expected": [{"type": "f32", "value": "1392270651"}]}, - {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "2202918851"}, {"type": "f64", "value": "4072985553596038423"}]}, "expected": [{"type": "f32", "value": "66813087"}]}, - {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "822392741"}, {"type": "f64", "value": "13740716732336801211"}]}, "expected": [{"type": "f32", "value": "3045484077"}]}, - {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "2870112826"}, {"type": "f64", "value": "13742514716462174325"}]}, "expected": [{"type": "f32", "value": "3048850075"}]}, - {"type": "module", "line": 675, "filename": "float_exprs.38.wasm"}, - {"type": "assert_return", "line": 680, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4979303437048015281"}, {"type": "f32", "value": "1583535740"}]}, "expected": [{"type": "f32", "value": "1758482618"}]}, - {"type": "assert_return", "line": 681, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "13967600632962086462"}, {"type": "f32", "value": "1214924370"}]}, "expected": [{"type": "f32", "value": "3468107136"}]}, - {"type": "assert_return", "line": 682, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "13860263758943608426"}, {"type": "f32", "value": "969848030"}]}, "expected": [{"type": "f32", "value": "3268174805"}]}, - {"type": "assert_return", "line": 683, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4364064588997139903"}, {"type": "f32", "value": "472962692"}]}, "expected": [{"type": "f32", "value": "612510881"}]}, - {"type": "assert_return", "line": 684, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4673175763235896759"}, {"type": "f32", "value": "1198952676"}]}, "expected": [{"type": "f32", "value": "3339501185"}]}, - {"type": "module", "line": 688, "filename": "float_exprs.39.wasm"}, - {"type": "assert_return", "line": 723, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 724, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 725, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 726, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 727, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 728, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "1333788672"}]}, - {"type": "assert_return", "line": 729, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 730, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 732, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 733, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 734, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 735, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 736, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 737, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "4751297606873776128"}]}, - {"type": "assert_return", "line": 738, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 739, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 741, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 742, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 743, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 744, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 745, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 746, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "1602224128"}]}, - {"type": "assert_return", "line": 747, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 748, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 750, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 751, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 752, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 753, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 754, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 755, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "4895412794951729152"}]}, - {"type": "assert_return", "line": 756, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 757, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 763, "filename": "float_exprs.40.wasm"}, - {"type": "action", "line": 784, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "0"}, {"type": "f32", "value": "1097963930"}]}, "expected": []}, - {"type": "action", "line": 785, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "4"}, {"type": "f32", "value": "1098068787"}]}, "expected": []}, - {"type": "action", "line": 786, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "8"}, {"type": "f32", "value": "1098173645"}]}, "expected": []}, - {"type": "action", "line": 787, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "12"}, {"type": "f32", "value": "1098278502"}]}, "expected": []}, - {"type": "assert_return", "line": 788, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1097963930"}]}, - {"type": "assert_return", "line": 789, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "f32", "value": "1098068787"}]}, - {"type": "assert_return", "line": 790, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f32", "value": "1098173645"}]}, - {"type": "assert_return", "line": 791, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "f32", "value": "1098278502"}]}, - {"type": "action", "line": 792, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "16"}, {"type": "f32", "value": "1077936128"}]}, "expected": []}, - {"type": "assert_return", "line": 793, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1084297489"}]}, - {"type": "assert_return", "line": 794, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "f32", "value": "1084367394"}]}, - {"type": "assert_return", "line": 795, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f32", "value": "1084437299"}]}, - {"type": "assert_return", "line": 796, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "f32", "value": "1084507204"}]}, - {"type": "module", "line": 798, "filename": "float_exprs.41.wasm"}, - {"type": "action", "line": 819, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "0"}, {"type": "f64", "value": "4624690162351420211"}]}, "expected": []}, - {"type": "action", "line": 820, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "8"}, {"type": "f64", "value": "4624746457346762342"}]}, "expected": []}, - {"type": "action", "line": 821, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "16"}, {"type": "f64", "value": "4624802752342104474"}]}, "expected": []}, - {"type": "action", "line": 822, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "24"}, {"type": "f64", "value": "4624859047337446605"}]}, "expected": []}, - {"type": "assert_return", "line": 823, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4624690162351420211"}]}, - {"type": "assert_return", "line": 824, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f64", "value": "4624746457346762342"}]}, - {"type": "assert_return", "line": 825, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "f64", "value": "4624802752342104474"}]}, - {"type": "assert_return", "line": 826, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f64", "value": "4624859047337446605"}]}, - {"type": "action", "line": 827, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "32"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": []}, - {"type": "assert_return", "line": 828, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4617353047958495778"}]}, - {"type": "assert_return", "line": 829, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f64", "value": "4617390577955390532"}]}, - {"type": "assert_return", "line": 830, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "f64", "value": "4617428107952285287"}]}, - {"type": "assert_return", "line": 831, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f64", "value": "4617465637949180041"}]}, - {"type": "module", "line": 835, "filename": "float_exprs.42.wasm"}, - {"type": "assert_return", "line": 847, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 848, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 849, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 850, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 851, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 852, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 853, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 854, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 855, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 856, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 857, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 858, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 859, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 860, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 861, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 862, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 863, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 864, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 865, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 866, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 867, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 868, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 869, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 870, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 871, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 872, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 873, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 874, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 875, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 876, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 877, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 878, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "module", "line": 882, "filename": "float_exprs.43.wasm"}, - {"type": "assert_return", "line": 894, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 895, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 896, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 897, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 898, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 899, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 900, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 901, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 902, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 903, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 904, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 905, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 906, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 907, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 908, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 909, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 910, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 911, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 912, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 913, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 914, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 915, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 916, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 917, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 918, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 919, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 920, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 921, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 922, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 923, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 924, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 925, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 929, "filename": "float_exprs.44.wasm"}, - {"type": "assert_return", "line": 973, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 974, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 975, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 976, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 977, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 978, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 979, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 980, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 981, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 982, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 983, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 984, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 985, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 986, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 987, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 988, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 989, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 990, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 991, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 992, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 993, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 994, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 995, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 996, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 997, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 998, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 999, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1000, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1001, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1002, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1003, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1004, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1008, "filename": "float_exprs.45.wasm"}, - {"type": "assert_return", "line": 1020, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 1021, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 1022, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1023, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1024, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 1025, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 1026, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1027, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1028, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 1029, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 1030, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1031, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1032, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 1033, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 1034, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1035, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1036, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 1037, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 1038, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1039, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1040, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 1041, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 1042, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1043, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1044, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 1045, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1046, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1047, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1048, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 1049, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1050, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1051, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1055, "filename": "float_exprs.46.wasm"}, - {"type": "assert_return", "line": 1099, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 1100, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 1101, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1102, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1103, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 1104, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 1105, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1106, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1107, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 1108, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 1109, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1110, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1111, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 1112, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 1113, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1114, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1115, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 1116, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 1117, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1118, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1119, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 1120, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 1121, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1122, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1123, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 1124, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1125, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1126, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1127, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 1128, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1129, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1130, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1135, "filename": "float_exprs.47.wasm"}, - {"type": "assert_return", "line": 1144, "action": {"type": "invoke", "field": "f32.incorrect_correction", "args": []}, "expected": [{"type": "f32", "value": "872415232"}]}, - {"type": "assert_return", "line": 1145, "action": {"type": "invoke", "field": "f64.incorrect_correction", "args": []}, "expected": [{"type": "f64", "value": "13596367275031527424"}]}, - {"type": "module", "line": 1150, "filename": "float_exprs.48.wasm"}, - {"type": "assert_return", "line": 1167, "action": {"type": "invoke", "field": "calculate", "args": []}, "expected": [{"type": "f32", "value": "3286857379"}]}, - {"type": "module", "line": 1169, "filename": "float_exprs.49.wasm"}, - {"type": "assert_return", "line": 1186, "action": {"type": "invoke", "field": "calculate", "args": []}, "expected": [{"type": "f64", "value": "13870293918930799763"}]}, - {"type": "module", "line": 1191, "filename": "float_exprs.50.wasm"}, - {"type": "assert_return", "line": 1197, "action": {"type": "invoke", "field": "llvm_pr26746", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "module", "line": 1202, "filename": "float_exprs.51.wasm"}, - {"type": "assert_return", "line": 1208, "action": {"type": "invoke", "field": "llvm_pr27153", "args": [{"type": "i32", "value": "33554434"}]}, "expected": [{"type": "f32", "value": "1270874112"}]}, - {"type": "module", "line": 1213, "filename": "float_exprs.52.wasm"}, - {"type": "assert_return", "line": 1220, "action": {"type": "invoke", "field": "llvm_pr27036", "args": [{"type": "i32", "value": "4269932491"}, {"type": "i32", "value": "14942208"}]}, "expected": [{"type": "f32", "value": "3407478836"}]}, - {"type": "module", "line": 1230, "filename": "float_exprs.53.wasm"}, - {"type": "assert_return", "line": 1244, "action": {"type": "invoke", "field": "thepast0", "args": [{"type": "f64", "value": "9007199254740992"}, {"type": "f64", "value": "4607182418800017407"}, {"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4602678819172646912"}]}, "expected": [{"type": "f64", "value": "9007199254740991"}]}, - {"type": "assert_return", "line": 1245, "action": {"type": "invoke", "field": "thepast1", "args": [{"type": "f64", "value": "4363988038922010624"}, {"type": "f64", "value": "4607182418800017407"}, {"type": "f64", "value": "4363988038922010624"}]}, "expected": [{"type": "f64", "value": "13348669295526150144"}]}, - {"type": "assert_return", "line": 1246, "action": {"type": "invoke", "field": "thepast2", "args": [{"type": "f32", "value": "16777216"}, {"type": "f32", "value": "1056964608"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, - {"type": "module", "line": 1251, "filename": "float_exprs.54.wasm"}, - {"type": "assert_return", "line": 1257, "action": {"type": "invoke", "field": "inverse", "args": [{"type": "f32", "value": "1119879168"}]}, "expected": [{"type": "f32", "value": "1009429163"}]}, - {"type": "module", "line": 1262, "filename": "float_exprs.55.wasm"}, - {"type": "assert_return", "line": 1272, "action": {"type": "invoke", "field": "f32_sqrt_minus_2", "args": [{"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1273, "action": {"type": "invoke", "field": "f64_sqrt_minus_2", "args": [{"type": "f64", "value": "4616189618054758400"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 1277, "filename": "float_exprs.56.wasm"}, - {"type": "assert_return", "line": 1285, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "3765723020"}]}, "expected": [{"type": "f32", "value": "3765723019"}]}, - {"type": "assert_return", "line": 1286, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "426844452"}]}, "expected": [{"type": "f32", "value": "426844451"}]}, - {"type": "assert_return", "line": 1287, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "535132276"}]}, "expected": [{"type": "f32", "value": "535132277"}]}, - {"type": "assert_return", "line": 1288, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "3253941441"}]}, "expected": [{"type": "f32", "value": "3253941442"}]}, - {"type": "assert_return", "line": 1289, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "1660734603"}]}, "expected": [{"type": "f32", "value": "1660734602"}]}, - {"type": "assert_return", "line": 1291, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1292, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1293, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 1294, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 1296, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "14500888369201570768"}]}, "expected": [{"type": "f64", "value": "14500888369201570769"}]}, - {"type": "assert_return", "line": 1297, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "14132092565459057123"}]}, "expected": [{"type": "f64", "value": "14132092565459057122"}]}, - {"type": "assert_return", "line": 1298, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "5359183527603521526"}]}, "expected": [{"type": "f64", "value": "5359183527603521525"}]}, - {"type": "assert_return", "line": 1299, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "1521566147669375634"}]}, "expected": [{"type": "f64", "value": "1521566147669375633"}]}, - {"type": "assert_return", "line": 1300, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "8671785631545870379"}]}, "expected": [{"type": "f64", "value": "8671785631545870378"}]}, - {"type": "assert_return", "line": 1302, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1303, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1304, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 1305, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "module", "line": 1309, "filename": "float_exprs.57.wasm"}, - {"type": "assert_return", "line": 1319, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "2759308231"}, {"type": "f32", "value": "618704988"}]}, "expected": [{"type": "f32", "value": "2315864577"}]}, - {"type": "assert_return", "line": 1320, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3415653214"}, {"type": "f32", "value": "1274676302"}]}, "expected": [{"type": "f32", "value": "3625675853"}]}, - {"type": "assert_return", "line": 1321, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1446924633"}, {"type": "f32", "value": "3607373982"}]}, "expected": [{"type": "f32", "value": "4000155759"}]}, - {"type": "assert_return", "line": 1322, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1212067608"}, {"type": "f32", "value": "3278094810"}]}, "expected": [{"type": "f32", "value": "1359874131"}]}, - {"type": "assert_return", "line": 1323, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3278732464"}, {"type": "f32", "value": "3379389272"}]}, "expected": [{"type": "f32", "value": "3546030359"}]}, - {"type": "assert_return", "line": 1325, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "2467435761933928117"}, {"type": "f64", "value": "2526113756828458004"}]}, "expected": [{"type": "f64", "value": "9668435399096543331"}]}, - {"type": "assert_return", "line": 1326, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "2911983657790464931"}, {"type": "f64", "value": "2814431682419759911"}]}, "expected": [{"type": "f64", "value": "1217162942843921803"}]}, - {"type": "assert_return", "line": 1327, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "12131637044948792058"}, {"type": "f64", "value": "12170782965730311956"}]}, "expected": [{"type": "f64", "value": "10511676135434922533"}]}, - {"type": "assert_return", "line": 1328, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "14639789466354372633"}, {"type": "f64", "value": "5456963169336729236"}]}, "expected": [{"type": "f64", "value": "15530333405173431543"}]}, - {"type": "assert_return", "line": 1329, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "5121779675912507154"}, {"type": "f64", "value": "14237286623175920791"}]}, "expected": [{"type": "f64", "value": "5636689734063865714"}]}, - {"type": "module", "line": 1333, "filename": "float_exprs.58.wasm"}, - {"type": "assert_return", "line": 1343, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "684135946"}, {"type": "f32", "value": "744319693"}]}, "expected": [{"type": "f32", "value": "2571075368"}]}, - {"type": "assert_return", "line": 1344, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3560929481"}, {"type": "f32", "value": "3496840229"}]}, "expected": [{"type": "f32", "value": "1762604185"}]}, - {"type": "assert_return", "line": 1345, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "968841772"}, {"type": "f32", "value": "3106497100"}]}, "expected": [{"type": "f32", "value": "870712803"}]}, - {"type": "assert_return", "line": 1346, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "697514723"}, {"type": "f32", "value": "2834753933"}]}, "expected": [{"type": "f32", "value": "327914662"}]}, - {"type": "assert_return", "line": 1347, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1498230729"}, {"type": "f32", "value": "3650453580"}]}, "expected": [{"type": "f32", "value": "4080583891"}]}, - {"type": "assert_return", "line": 1349, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "6212515167506370409"}, {"type": "f64", "value": "15348474890798978273"}]}, "expected": [{"type": "f64", "value": "7818515589337550196"}]}, - {"type": "assert_return", "line": 1350, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "15222970140370015722"}, {"type": "f64", "value": "15325207139996136125"}]}, "expected": [{"type": "f64", "value": "16819892485880140289"}]}, - {"type": "assert_return", "line": 1351, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "4797439202963874050"}, {"type": "f64", "value": "14009643534571442918"}]}, "expected": [{"type": "f64", "value": "4987747999326390045"}]}, - {"type": "assert_return", "line": 1352, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "14653559129294038194"}, {"type": "f64", "value": "14581996260169223461"}]}, "expected": [{"type": "f64", "value": "6253339631158964222"}]}, - {"type": "assert_return", "line": 1353, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "12768321634751930140"}, {"type": "f64", "value": "12767602092732820937"}]}, "expected": [{"type": "f64", "value": "2473652960990319032"}]}, - {"type": "module", "line": 1358, "filename": "float_exprs.59.wasm"}, - {"type": "assert_return", "line": 1391, "action": {"type": "invoke", "field": "f32.simple_x4_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "16"}, {"type": "i32", "value": "32"}]}, "expected": []}, - {"type": "assert_return", "line": 1392, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "32"}]}, "expected": [{"type": "f32", "value": "2"}]}, - {"type": "assert_return", "line": 1393, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "36"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1394, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "40"}]}, "expected": [{"type": "f32", "value": "1"}]}, - {"type": "assert_return", "line": 1395, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "44"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, - {"type": "module", "line": 1397, "filename": "float_exprs.60.wasm"}, - {"type": "assert_return", "line": 1430, "action": {"type": "invoke", "field": "f64.simple_x4_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "32"}, {"type": "i32", "value": "64"}]}, "expected": []}, - {"type": "assert_return", "line": 1431, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "64"}]}, "expected": [{"type": "f64", "value": "2"}]}, - {"type": "assert_return", "line": 1432, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "72"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1433, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "80"}]}, "expected": [{"type": "f64", "value": "1"}]}, - {"type": "assert_return", "line": 1434, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "88"}]}, "expected": [{"type": "f64", "value": "9223372036854775809"}]}, - {"type": "module", "line": 1439, "filename": "float_exprs.61.wasm"}, - {"type": "assert_return", "line": 1530, "action": {"type": "invoke", "field": "f32.kahan_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f32", "value": "4085779725"}]}, - {"type": "assert_return", "line": 1531, "action": {"type": "invoke", "field": "f32.plain_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f32", "value": "4082113053"}]}, - {"type": "module", "line": 1533, "filename": "float_exprs.62.wasm"}, - {"type": "assert_return", "line": 1581, "action": {"type": "invoke", "field": "f64.kahan_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f64", "value": "9105671289202277512"}]}, - {"type": "assert_return", "line": 1582, "action": {"type": "invoke", "field": "f64.plain_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f64", "value": "9105671289202539655"}]}, - {"type": "module", "line": 1586, "filename": "float_exprs.63.wasm"}, - {"type": "assert_return", "line": 1594, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1595, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1596, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1597, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1599, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1600, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1601, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1602, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1606, "filename": "float_exprs.64.wasm"}, - {"type": "assert_return", "line": 1614, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1615, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1616, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1617, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1619, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1620, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1621, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1622, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1626, "filename": "float_exprs.65.wasm"}, - {"type": "assert_return", "line": 1634, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1635, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1636, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1637, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1639, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1640, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1641, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1642, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1646, "filename": "float_exprs.66.wasm"}, - {"type": "assert_return", "line": 1654, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1655, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1656, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1657, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1659, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1660, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1661, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1662, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "module", "line": 1666, "filename": "float_exprs.67.wasm"}, - {"type": "assert_return", "line": 1680, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "4046243078"}]}, "expected": [{"type": "f32", "value": "4068578245"}]}, - {"type": "assert_return", "line": 1681, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "2573857750"}]}, "expected": [{"type": "f32", "value": "2595190497"}]}, - {"type": "assert_return", "line": 1682, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "419462401"}]}, "expected": [{"type": "f32", "value": "440449921"}]}, - {"type": "assert_return", "line": 1683, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "2955475482"}]}, "expected": [{"type": "f32", "value": "2977789734"}]}, - {"type": "assert_return", "line": 1684, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "3883931973"}]}, "expected": [{"type": "f32", "value": "3904906727"}]}, - {"type": "assert_return", "line": 1686, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "14137662215323058150"}]}, "expected": [{"type": "f64", "value": "14149352706895019994"}]}, - {"type": "assert_return", "line": 1687, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "11424134044545165748"}]}, "expected": [{"type": "f64", "value": "11435767596137037638"}]}, - {"type": "assert_return", "line": 1688, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "15055410132664937138"}]}, "expected": [{"type": "f64", "value": "15066699987142021125"}]}, - {"type": "assert_return", "line": 1689, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "7991451501228919438"}]}, "expected": [{"type": "f64", "value": "8003319959635773419"}]}, - {"type": "assert_return", "line": 1690, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "14886926859367497770"}]}, "expected": [{"type": "f64", "value": "14898679235615764511"}]}, - {"type": "module", "line": 1695, "filename": "float_exprs.68.wasm"}, - {"type": "assert_return", "line": 1703, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "3875242260"}, {"type": "f32", "value": "3086869257"}, {"type": "f32", "value": "3301317576"}]}, "expected": [{"type": "f32", "value": "3911440926"}]}, - {"type": "assert_return", "line": 1704, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "485052055"}, {"type": "f32", "value": "1996083391"}, {"type": "f32", "value": "2276616712"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1705, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "1430470604"}, {"type": "f32", "value": "186144382"}, {"type": "f32", "value": "1953564780"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 1706, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "3101818893"}, {"type": "f32", "value": "4258133430"}, {"type": "f32", "value": "2855958950"}]}, "expected": [{"type": "f32", "value": "2411777082"}]}, - {"type": "assert_return", "line": 1707, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "1458407223"}, {"type": "f32", "value": "1537931089"}, {"type": "f32", "value": "4260989344"}]}, "expected": [{"type": "f32", "value": "2147507000"}]}, - {"type": "assert_return", "line": 1709, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "6128077243319875447"}, {"type": "f64", "value": "7240092044185667120"}, {"type": "f64", "value": "10312472494987686942"}]}, "expected": [{"type": "f64", "value": "16236150182064455170"}]}, - {"type": "assert_return", "line": 1710, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "17395933367696573535"}, {"type": "f64", "value": "4478922858584402707"}, {"type": "f64", "value": "6032094754408482817"}]}, "expected": [{"type": "f64", "value": "16098470347548634769"}]}, - {"type": "assert_return", "line": 1711, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "13843263185226986279"}, {"type": "f64", "value": "17796742619038211051"}, {"type": "f64", "value": "5375701731263473827"}]}, "expected": [{"type": "f64", "value": "44472927"}]}, - {"type": "assert_return", "line": 1712, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "17547288444310957340"}, {"type": "f64", "value": "911654786857739111"}, {"type": "f64", "value": "8937284546802896640"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 1713, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "9835707468114203513"}, {"type": "f64", "value": "1924400690116523912"}, {"type": "f64", "value": "13208934041167870811"}]}, "expected": [{"type": "f64", "value": "3916014548332337260"}]}, - {"type": "module", "line": 1719, "filename": "float_exprs.69.wasm"}, - {"type": "assert_return", "line": 1727, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "2304917983"}, {"type": "f32", "value": "301403678"}, {"type": "f32", "value": "331350955"}, {"type": "f32", "value": "3251297465"}]}, "expected": [{"type": "f32", "value": "148760966"}]}, - {"type": "assert_return", "line": 1728, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "4068974897"}, {"type": "f32", "value": "1276265036"}, {"type": "f32", "value": "930821438"}, {"type": "f32", "value": "1044692964"}]}, "expected": [{"type": "f32", "value": "3742862674"}]}, - {"type": "assert_return", "line": 1729, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "3496980369"}, {"type": "f32", "value": "3548280607"}, {"type": "f32", "value": "3461305482"}, {"type": "f32", "value": "3298174616"}]}, "expected": [{"type": "f32", "value": "1176926862"}]}, - {"type": "assert_return", "line": 1730, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "4135236702"}, {"type": "f32", "value": "787270424"}, {"type": "f32", "value": "932959293"}, {"type": "f32", "value": "1724950821"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 1731, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "622783177"}, {"type": "f32", "value": "2677642769"}, {"type": "f32", "value": "307759154"}, {"type": "f32", "value": "768171421"}]}, "expected": [{"type": "f32", "value": "2844661464"}]}, - {"type": "assert_return", "line": 1733, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "10143060558527560466"}, {"type": "f64", "value": "11745059379675007839"}, {"type": "f64", "value": "16295837305232663584"}, {"type": "f64", "value": "5444961058358534642"}]}, "expected": [{"type": "f64", "value": "13856326607560224491"}]}, - {"type": "assert_return", "line": 1734, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "14349445329289351080"}, {"type": "f64", "value": "468238185841254727"}, {"type": "f64", "value": "15463559257629249878"}, {"type": "f64", "value": "15937497686185055572"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 1735, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "15220380342429201729"}, {"type": "f64", "value": "14697937818549468616"}, {"type": "f64", "value": "13203624158275174657"}, {"type": "f64", "value": "17131104131485469546"}]}, "expected": [{"type": "f64", "value": "1202126128702318245"}]}, - {"type": "assert_return", "line": 1736, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "14414969397981384765"}, {"type": "f64", "value": "12269327994486371199"}, {"type": "f64", "value": "298707625567048656"}, {"type": "f64", "value": "5613107161545919917"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1737, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "4529089342618677929"}, {"type": "f64", "value": "3361245300043094097"}, {"type": "f64", "value": "1815899012046749567"}, {"type": "f64", "value": "15418396504351552390"}]}, "expected": [{"type": "f64", "value": "10619033301585441215"}]}, - {"type": "module", "line": 1741, "filename": "float_exprs.70.wasm"}, - {"type": "assert_return", "line": 1749, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "1136439096"}, {"type": "f32", "value": "3173274359"}, {"type": "f32", "value": "4274852390"}]}, "expected": [{"type": "f32", "value": "2221638875"}]}, - {"type": "assert_return", "line": 1750, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2690073844"}, {"type": "f32", "value": "2809448479"}, {"type": "f32", "value": "3608905030"}]}, "expected": [{"type": "f32", "value": "264862203"}]}, - {"type": "assert_return", "line": 1751, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2830184964"}, {"type": "f32", "value": "530019033"}, {"type": "f32", "value": "3623253973"}]}, "expected": [{"type": "f32", "value": "272108594"}]}, - {"type": "assert_return", "line": 1752, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2365787800"}, {"type": "f32", "value": "245111369"}, {"type": "f32", "value": "3952003433"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1753, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "982471119"}, {"type": "f32", "value": "1045692415"}, {"type": "f32", "value": "37216954"}]}, "expected": [{"type": "f32", "value": "2073319791"}]}, - {"type": "assert_return", "line": 1755, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "15770585325769044278"}, {"type": "f64", "value": "6564157675451289455"}, {"type": "f64", "value": "8712254759989822359"}]}, "expected": [{"type": "f64", "value": "2458462832069881218"}]}, - {"type": "assert_return", "line": 1756, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "14069844870254671283"}, {"type": "f64", "value": "4634122757084803708"}, {"type": "f64", "value": "9524897388132352235"}]}, "expected": [{"type": "f64", "value": "9152039358940941283"}]}, - {"type": "assert_return", "line": 1757, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "9479648703296052622"}, {"type": "f64", "value": "214573661502224386"}, {"type": "f64", "value": "6877551490107761946"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1758, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "6019502660029506228"}, {"type": "f64", "value": "15316513033818836241"}, {"type": "f64", "value": "4039967192182502935"}]}, "expected": [{"type": "f64", "value": "15883525310425977300"}]}, - {"type": "assert_return", "line": 1759, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "10555667216821129841"}, {"type": "f64", "value": "1207418919037494573"}, {"type": "f64", "value": "4296330408727545598"}]}, "expected": [{"type": "f64", "value": "10866511466898347555"}]}, - {"type": "module", "line": 1763, "filename": "float_exprs.71.wasm"}, - {"type": "assert_return", "line": 1771, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2662226315"}]}, "expected": [{"type": "f32", "value": "514742673"}]}, - {"type": "assert_return", "line": 1772, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2606267634"}]}, "expected": [{"type": "f32", "value": "458819801"}]}, - {"type": "assert_return", "line": 1773, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2624528574"}]}, "expected": [{"type": "f32", "value": "477049564"}]}, - {"type": "assert_return", "line": 1774, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "347235385"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1775, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "1978715378"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 1777, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "2225189009770021885"}]}, "expected": [{"type": "f64", "value": "2225189011649283571"}]}, - {"type": "assert_return", "line": 1778, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11517048459773840771"}]}, "expected": [{"type": "f64", "value": "2293676422919064961"}]}, - {"type": "assert_return", "line": 1779, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11484764485761855006"}]}, "expected": [{"type": "f64", "value": "2261392448906973069"}]}, - {"type": "assert_return", "line": 1780, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11056484744549647728"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1781, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "8465406758332488378"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "module", "line": 1785, "filename": "float_exprs.72.wasm"}, - {"type": "assert_return", "line": 1793, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "24047316"}, {"type": "f32", "value": "2517821717"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1794, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "295749258"}, {"type": "f32", "value": "803416494"}]}, "expected": [{"type": "f32", "value": "549395357"}]}, - {"type": "assert_return", "line": 1795, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "329708528"}, {"type": "f32", "value": "1120042892"}]}, "expected": [{"type": "f32", "value": "724841268"}]}, - {"type": "assert_return", "line": 1796, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "1916535951"}, {"type": "f32", "value": "994115420"}]}, "expected": [{"type": "f32", "value": "1455324620"}]}, - {"type": "assert_return", "line": 1797, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "598482176"}, {"type": "f32", "value": "990534933"}]}, "expected": [{"type": "f32", "value": "794443079"}]}, - {"type": "assert_return", "line": 1799, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "10974446854152441278"}, {"type": "f64", "value": "13797896470155574122"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1800, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "1712959863583927241"}, {"type": "f64", "value": "2792003944717853898"}]}, "expected": [{"type": "f64", "value": "2252469008297979510"}]}, - {"type": "assert_return", "line": 1801, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "4208351758938831157"}, {"type": "f64", "value": "497361189565243603"}]}, "expected": [{"type": "f64", "value": "2352856462697312748"}]}, - {"type": "assert_return", "line": 1802, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "2976792199849816182"}, {"type": "f64", "value": "2030444188042608984"}]}, "expected": [{"type": "f64", "value": "2503613111125550255"}]}, - {"type": "assert_return", "line": 1803, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "4717634334691577101"}, {"type": "f64", "value": "6919598687070693285"}]}, "expected": [{"type": "f64", "value": "5818898567902921651"}]}, - {"type": "module", "line": 1807, "filename": "float_exprs.73.wasm"}, - {"type": "assert_return", "line": 1815, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "3428799709"}, {"type": "f32", "value": "2733489079"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1816, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "1339867611"}, {"type": "f32", "value": "1296568207"}]}, "expected": [{"type": "f32", "value": "1086203643"}]}, - {"type": "assert_return", "line": 1817, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "65679161"}, {"type": "f32", "value": "1196795110"}]}, "expected": [{"type": "f32", "value": "498959746"}]}, - {"type": "assert_return", "line": 1818, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "1566143010"}, {"type": "f32", "value": "816694667"}]}, "expected": [{"type": "f32", "value": "1439333972"}]}, - {"type": "assert_return", "line": 1819, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "130133331"}, {"type": "f32", "value": "208189588"}]}, "expected": [{"type": "f32", "value": "1025844032"}]}, - {"type": "assert_return", "line": 1821, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "10629913473787695463"}, {"type": "f64", "value": "12991130264919696663"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1822, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "1966780663211935584"}, {"type": "f64", "value": "7043916066229883379"}]}, "expected": [{"type": "f64", "value": "2068364230648818889"}]}, - {"type": "assert_return", "line": 1823, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "6965599900716272009"}, {"type": "f64", "value": "4118781927977980600"}]}, "expected": [{"type": "f64", "value": "6030491425828883991"}]}, - {"type": "assert_return", "line": 1824, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "962551478168675351"}, {"type": "f64", "value": "5918292176617055751"}]}, "expected": [{"type": "f64", "value": "2129092583060403799"}]}, - {"type": "assert_return", "line": 1825, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "1056821405580891413"}, {"type": "f64", "value": "8865548665903786673"}]}, "expected": [{"type": "f64", "value": "702724841785532050"}]}, - {"type": "module", "line": 1829, "filename": "float_exprs.74.wasm"}, - {"type": "assert_return", "line": 1837, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3900330981"}, {"type": "f32", "value": "1843416431"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 1838, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "2210946958"}, {"type": "f32", "value": "256302916"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1839, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "1312995444"}, {"type": "f32", "value": "2371494"}]}, "expected": [{"type": "f32", "value": "1849105549"}]}, - {"type": "assert_return", "line": 1840, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3576537897"}, {"type": "f32", "value": "2010442638"}]}, "expected": [{"type": "f32", "value": "3104219421"}]}, - {"type": "assert_return", "line": 1841, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3284697858"}, {"type": "f32", "value": "1124488329"}]}, "expected": [{"type": "f32", "value": "3255461622"}]}, - {"type": "assert_return", "line": 1843, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "7751219282814906463"}, {"type": "f64", "value": "8023732701704228537"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 1844, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "10108528314069607083"}, {"type": "f64", "value": "1595930056995453707"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1845, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "2695209648295623224"}, {"type": "f64", "value": "7133480874314061811"}]}, "expected": [{"type": "f64", "value": "1432338140829931582"}]}, - {"type": "assert_return", "line": 1846, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "15416524255949334213"}, {"type": "f64", "value": "2434442666062773630"}]}, "expected": [{"type": "f64", "value": "16502590179898118478"}]}, - {"type": "assert_return", "line": 1847, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "5076901024782455083"}, {"type": "f64", "value": "8399438310541178654"}]}, "expected": [{"type": "f64", "value": "3180744754328846996"}]}, - {"type": "module", "line": 1852, "filename": "float_exprs.75.wasm"}, - {"type": "assert_return", "line": 1860, "action": {"type": "invoke", "field": "f32.no_flush_intermediate_subnormal", "args": [{"type": "f32", "value": "8388608"}, {"type": "f32", "value": "872415232"}, {"type": "f32", "value": "1258291200"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, - {"type": "assert_return", "line": 1861, "action": {"type": "invoke", "field": "f64.no_flush_intermediate_subnormal", "args": [{"type": "f64", "value": "4503599627370496"}, {"type": "f64", "value": "4372995238176751616"}, {"type": "f64", "value": "4841369599423283200"}]}, "expected": [{"type": "f64", "value": "4503599627370496"}]}, - {"type": "module", "line": 1866, "filename": "float_exprs.76.wasm"}, - {"type": "assert_return", "line": 1889, "action": {"type": "invoke", "field": "f32.recoding_eq", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1890, "action": {"type": "invoke", "field": "f32.recoding_le", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1891, "action": {"type": "invoke", "field": "f32.recoding_lt", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1893, "action": {"type": "invoke", "field": "f32.recoding_eq", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1894, "action": {"type": "invoke", "field": "f32.recoding_le", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1895, "action": {"type": "invoke", "field": "f32.recoding_lt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1897, "action": {"type": "invoke", "field": "f64.recoding_eq", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1898, "action": {"type": "invoke", "field": "f64.recoding_le", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1899, "action": {"type": "invoke", "field": "f64.recoding_lt", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1901, "action": {"type": "invoke", "field": "f64.recoding_eq", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1902, "action": {"type": "invoke", "field": "f64.recoding_le", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1903, "action": {"type": "invoke", "field": "f64.recoding_lt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1905, "action": {"type": "invoke", "field": "recoding_demote", "args": [{"type": "f64", "value": "4014054135371399168"}, {"type": "f32", "value": "1150853120"}]}, "expected": [{"type": "f32", "value": "46548238"}]}, - {"type": "module", "line": 1910, "filename": "float_exprs.77.wasm"}, - {"type": "assert_return", "line": 1918, "action": {"type": "invoke", "field": "f32.no_extended_precision_div", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1054567863"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1919, "action": {"type": "invoke", "field": "f64.no_extended_precision_div", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4619567317775286272"}, {"type": "f64", "value": "4601392076421969627"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "module", "line": 1926, "filename": "float_exprs.78.wasm"}, - {"type": "assert_return", "line": 1934, "action": {"type": "invoke", "field": "f32.no_distribute_exact", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1935, "action": {"type": "invoke", "field": "f64.no_distribute_exact", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 1940, "filename": "float_exprs.79.wasm"}, - {"type": "assert_return", "line": 1972, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1068827891"}]}, - {"type": "assert_return", "line": 1973, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_2", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1084227584"}, {"type": "f32", "value": "1078530011"}, {"type": "f32", "value": "1088421888"}]}, "expected": [{"type": "f32", "value": "1068827946"}]}, - {"type": "assert_return", "line": 1974, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1071494103"}]}, - {"type": "assert_return", "line": 1975, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_3", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1076754516"}, {"type": "f32", "value": "1078530011"}]}, "expected": [{"type": "f32", "value": "1071481194"}]}, - {"type": "assert_return", "line": 1976, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1074731965"}]}, - {"type": "assert_return", "line": 1977, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_5", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1076754516"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1074730668"}]}, - {"type": "assert_return", "line": 1978, "action": {"type": "invoke", "field": "f32.xkcd_better_sqrt_5", "args": [{"type": "f32", "value": "1095761920"}, {"type": "f32", "value": "1082130432"}, {"type": "f32", "value": "1078530011"}, {"type": "f32", "value": "1103101952"}]}, "expected": [{"type": "f32", "value": "1074731965"}]}, - {"type": "assert_return", "line": 1980, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4609047870845172685"}]}, - {"type": "assert_return", "line": 1981, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_2", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4617315517961601024"}, {"type": "f64", "value": "4614256656552045848"}, {"type": "f64", "value": "4619567317775286272"}]}, "expected": [{"type": "f64", "value": "4609047900099118431"}]}, - {"type": "assert_return", "line": 1982, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4610479282544200874"}]}, - {"type": "assert_return", "line": 1983, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_3", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613303445314885481"}, {"type": "f64", "value": "4614256656552045848"}]}, "expected": [{"type": "f64", "value": "4610472352185749397"}]}, - {"type": "assert_return", "line": 1984, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4612217596255138984"}]}, - {"type": "assert_return", "line": 1985, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_5", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613303445314885481"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4612216900234722254"}]}, - {"type": "assert_return", "line": 1986, "action": {"type": "invoke", "field": "f64.xkcd_better_sqrt_5", "args": [{"type": "f64", "value": "4623507967449235456"}, {"type": "f64", "value": "4616189618054758400"}, {"type": "f64", "value": "4614256656552045848"}, {"type": "f64", "value": "4627448617123184640"}]}, "expected": [{"type": "f64", "value": "4612217595876713891"}]}, - {"type": "module", "line": 1991, "filename": "float_exprs.80.wasm"}, - {"type": "assert_return", "line": 2069, "action": {"type": "invoke", "field": "f32.compute_radix", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 2070, "action": {"type": "invoke", "field": "f64.compute_radix", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "module", "line": 2075, "filename": "float_exprs.81.wasm"}, - {"type": "assert_return", "line": 2083, "action": {"type": "invoke", "field": "f32.no_fold_sub1_mul_add", "args": [{"type": "f32", "value": "796917760"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 2084, "action": {"type": "invoke", "field": "f64.no_fold_sub1_mul_add", "args": [{"type": "f64", "value": "4318952042648305664"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 2089, "filename": "float_exprs.82.wasm"}, - {"type": "assert_return", "line": 2103, "action": {"type": "invoke", "field": "f32.no_fold_add_le_monotonicity", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2104, "action": {"type": "invoke", "field": "f32.no_fold_add_le_monotonicity", "args": [{"type": "f32", "value": "2139095040"}, {"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2105, "action": {"type": "invoke", "field": "f64.no_fold_add_le_monotonicity", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2106, "action": {"type": "invoke", "field": "f64.no_fold_add_le_monotonicity", "args": [{"type": "f64", "value": "9218868437227405312"}, {"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "module", "line": 2110, "filename": "float_exprs.83.wasm"}, - {"type": "assert_return", "line": 2136, "action": {"type": "invoke", "field": "f32.not_lt", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2137, "action": {"type": "invoke", "field": "f32.not_le", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2138, "action": {"type": "invoke", "field": "f32.not_gt", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2139, "action": {"type": "invoke", "field": "f32.not_ge", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2140, "action": {"type": "invoke", "field": "f64.not_lt", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2141, "action": {"type": "invoke", "field": "f64.not_le", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2142, "action": {"type": "invoke", "field": "f64.not_gt", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2143, "action": {"type": "invoke", "field": "f64.not_ge", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "module", "line": 2149, "filename": "float_exprs.84.wasm"}, - {"type": "assert_return", "line": 2157, "action": {"type": "invoke", "field": "f32.epsilon", "args": []}, "expected": [{"type": "f32", "value": "3019898880"}]}, - {"type": "assert_return", "line": 2158, "action": {"type": "invoke", "field": "f64.epsilon", "args": []}, "expected": [{"type": "f64", "value": "4372995238176751616"}]}, + {"type": "module", "line": 655, "filename": "float_exprs.37.wasm"}, + {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4183652368636204281"}, {"type": "f32", "value": "69183310"}]}, "expected": [{"type": "f32", "value": "276467023"}]}, + {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4773927428111915216"}, {"type": "f32", "value": "1387972204"}]}, "expected": [{"type": "f32", "value": "1392270651"}]}, + {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4072985553596038423"}, {"type": "f32", "value": "2202918851"}]}, "expected": [{"type": "f32", "value": "66813087"}]}, + {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "13740716732336801211"}, {"type": "f32", "value": "822392741"}]}, "expected": [{"type": "f32", "value": "3045484077"}]}, + {"type": "assert_return", "line": 666, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "13742514716462174325"}, {"type": "f32", "value": "2870112826"}]}, "expected": [{"type": "f32", "value": "3048850075"}]}, + {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "69183310"}, {"type": "f64", "value": "4183652368636204281"}]}, "expected": [{"type": "f32", "value": "276467023"}]}, + {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "1387972204"}, {"type": "f64", "value": "4773927428111915216"}]}, "expected": [{"type": "f32", "value": "1392270651"}]}, + {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "2202918851"}, {"type": "f64", "value": "4072985553596038423"}]}, "expected": [{"type": "f32", "value": "66813087"}]}, + {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "822392741"}, {"type": "f64", "value": "13740716732336801211"}]}, "expected": [{"type": "f32", "value": "3045484077"}]}, + {"type": "assert_return", "line": 672, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "2870112826"}, {"type": "f64", "value": "13742514716462174325"}]}, "expected": [{"type": "f32", "value": "3048850075"}]}, + {"type": "module", "line": 677, "filename": "float_exprs.38.wasm"}, + {"type": "assert_return", "line": 684, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4979303437048015281"}, {"type": "f32", "value": "1583535740"}]}, "expected": [{"type": "f32", "value": "1758482618"}]}, + {"type": "assert_return", "line": 685, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "13967600632962086462"}, {"type": "f32", "value": "1214924370"}]}, "expected": [{"type": "f32", "value": "3468107136"}]}, + {"type": "assert_return", "line": 686, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "13860263758943608426"}, {"type": "f32", "value": "969848030"}]}, "expected": [{"type": "f32", "value": "3268174805"}]}, + {"type": "assert_return", "line": 687, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4364064588997139903"}, {"type": "f32", "value": "472962692"}]}, "expected": [{"type": "f32", "value": "612510881"}]}, + {"type": "assert_return", "line": 688, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4673175763235896759"}, {"type": "f32", "value": "1198952676"}]}, "expected": [{"type": "f32", "value": "3339501185"}]}, + {"type": "assert_return", "line": 690, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "1583535740"}, {"type": "f64", "value": "4979303437048015281"}]}, "expected": [{"type": "f32", "value": "3905966266"}]}, + {"type": "assert_return", "line": 691, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "1214924370"}, {"type": "f64", "value": "13967600632962086462"}]}, "expected": [{"type": "f32", "value": "1320623488"}]}, + {"type": "assert_return", "line": 692, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "969848030"}, {"type": "f64", "value": "13860263758943608426"}]}, "expected": [{"type": "f32", "value": "1120691157"}]}, + {"type": "assert_return", "line": 693, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "472962692"}, {"type": "f64", "value": "4364064588997139903"}]}, "expected": [{"type": "f32", "value": "2759994529"}]}, + {"type": "assert_return", "line": 694, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "1198952676"}, {"type": "f64", "value": "4673175763235896759"}]}, "expected": [{"type": "f32", "value": "1192017537"}]}, + {"type": "module", "line": 699, "filename": "float_exprs.39.wasm"}, + {"type": "assert_return", "line": 706, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "3700298049681794165"}, {"type": "f32", "value": "2017642079"}]}, "expected": [{"type": "f32", "value": "329178166"}]}, + {"type": "assert_return", "line": 707, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "5240203039857786645"}, {"type": "f32", "value": "169311251"}]}, "expected": [{"type": "f32", "value": "1349264105"}]}, + {"type": "assert_return", "line": 708, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "5404042108537284972"}, {"type": "f32", "value": "592745128"}]}, "expected": [{"type": "f32", "value": "2077099629"}]}, + {"type": "assert_return", "line": 709, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "5605237095216364626"}, {"type": "f32", "value": "44014947"}]}, "expected": [{"type": "f32", "value": "1904260016"}]}, + {"type": "assert_return", "line": 710, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "3845043516226476604"}, {"type": "f32", "value": "1468885281"}]}, "expected": [{"type": "f32", "value": "49968716"}]}, + {"type": "assert_return", "line": 712, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "2017642079"}, {"type": "f64", "value": "3700298049681794165"}]}, "expected": [{"type": "f32", "value": "329178166"}]}, + {"type": "assert_return", "line": 713, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "169311251"}, {"type": "f64", "value": "5240203039857786645"}]}, "expected": [{"type": "f32", "value": "1349264105"}]}, + {"type": "assert_return", "line": 714, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "592745128"}, {"type": "f64", "value": "5404042108537284972"}]}, "expected": [{"type": "f32", "value": "2077099629"}]}, + {"type": "assert_return", "line": 715, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "44014947"}, {"type": "f64", "value": "5605237095216364626"}]}, "expected": [{"type": "f32", "value": "1904260016"}]}, + {"type": "assert_return", "line": 716, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "1468885281"}, {"type": "f64", "value": "3845043516226476604"}]}, "expected": [{"type": "f32", "value": "49968716"}]}, + {"type": "module", "line": 721, "filename": "float_exprs.40.wasm"}, + {"type": "assert_return", "line": 728, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "5283862605148245729"}, {"type": "f32", "value": "1932933707"}]}, "expected": [{"type": "f32", "value": "1457608876"}]}, + {"type": "assert_return", "line": 729, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "3919260277508722072"}, {"type": "f32", "value": "379509872"}]}, "expected": [{"type": "f32", "value": "469826243"}]}, + {"type": "assert_return", "line": 730, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "4441666254287638695"}, {"type": "f32", "value": "3452068"}]}, "expected": [{"type": "f32", "value": "1824659560"}]}, + {"type": "assert_return", "line": 731, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "3987118416164120709"}, {"type": "f32", "value": "327692725"}]}, "expected": [{"type": "f32", "value": "647926247"}]}, + {"type": "assert_return", "line": 732, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "4944171978380117708"}, {"type": "f32", "value": "1811434203"}]}, "expected": [{"type": "f32", "value": "946934754"}]}, + {"type": "assert_return", "line": 734, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "451659502"}, {"type": "f64", "value": "4418811329667688930"}]}, "expected": [{"type": "f32", "value": "801699691"}]}, + {"type": "assert_return", "line": 735, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "1287575826"}, {"type": "f64", "value": "5323750166520438484"}]}, "expected": [{"type": "f32", "value": "88031"}]}, + {"type": "assert_return", "line": 736, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "737399826"}, {"type": "f64", "value": "3994494799108309244"}]}, "expected": [{"type": "f32", "value": "1878609809"}]}, + {"type": "assert_return", "line": 737, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "1740211648"}, {"type": "f64", "value": "5555331956744021194"}]}, "expected": [{"type": "f32", "value": "496184"}]}, + {"type": "assert_return", "line": 738, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "456887038"}, {"type": "f64", "value": "3717438582804640027"}]}, "expected": [{"type": "f32", "value": "2114092635"}]}, + {"type": "module", "line": 742, "filename": "float_exprs.41.wasm"}, + {"type": "assert_return", "line": 777, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 778, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 779, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 780, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 781, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 782, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "1333788672"}]}, + {"type": "assert_return", "line": 783, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 784, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 786, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 787, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 788, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 789, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 790, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 791, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "4751297606873776128"}]}, + {"type": "assert_return", "line": 792, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 793, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 795, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 796, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 797, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 798, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 799, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 800, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "1602224128"}]}, + {"type": "assert_return", "line": 801, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 802, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 804, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 805, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 806, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 807, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 808, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 809, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "4895412794951729152"}]}, + {"type": "assert_return", "line": 810, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 811, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 817, "filename": "float_exprs.42.wasm"}, + {"type": "action", "line": 838, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "0"}, {"type": "f32", "value": "1097963930"}]}, "expected": []}, + {"type": "action", "line": 839, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "4"}, {"type": "f32", "value": "1098068787"}]}, "expected": []}, + {"type": "action", "line": 840, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "8"}, {"type": "f32", "value": "1098173645"}]}, "expected": []}, + {"type": "action", "line": 841, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "12"}, {"type": "f32", "value": "1098278502"}]}, "expected": []}, + {"type": "assert_return", "line": 842, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1097963930"}]}, + {"type": "assert_return", "line": 843, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "f32", "value": "1098068787"}]}, + {"type": "assert_return", "line": 844, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f32", "value": "1098173645"}]}, + {"type": "assert_return", "line": 845, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "f32", "value": "1098278502"}]}, + {"type": "action", "line": 846, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "16"}, {"type": "f32", "value": "1077936128"}]}, "expected": []}, + {"type": "assert_return", "line": 847, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1084297489"}]}, + {"type": "assert_return", "line": 848, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "f32", "value": "1084367394"}]}, + {"type": "assert_return", "line": 849, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f32", "value": "1084437299"}]}, + {"type": "assert_return", "line": 850, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "f32", "value": "1084507204"}]}, + {"type": "module", "line": 852, "filename": "float_exprs.43.wasm"}, + {"type": "action", "line": 873, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "0"}, {"type": "f64", "value": "4624690162351420211"}]}, "expected": []}, + {"type": "action", "line": 874, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "8"}, {"type": "f64", "value": "4624746457346762342"}]}, "expected": []}, + {"type": "action", "line": 875, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "16"}, {"type": "f64", "value": "4624802752342104474"}]}, "expected": []}, + {"type": "action", "line": 876, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "24"}, {"type": "f64", "value": "4624859047337446605"}]}, "expected": []}, + {"type": "assert_return", "line": 877, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4624690162351420211"}]}, + {"type": "assert_return", "line": 878, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f64", "value": "4624746457346762342"}]}, + {"type": "assert_return", "line": 879, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "f64", "value": "4624802752342104474"}]}, + {"type": "assert_return", "line": 880, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f64", "value": "4624859047337446605"}]}, + {"type": "action", "line": 881, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "32"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": []}, + {"type": "assert_return", "line": 882, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4617353047958495778"}]}, + {"type": "assert_return", "line": 883, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f64", "value": "4617390577955390532"}]}, + {"type": "assert_return", "line": 884, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "f64", "value": "4617428107952285287"}]}, + {"type": "assert_return", "line": 885, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f64", "value": "4617465637949180041"}]}, + {"type": "module", "line": 889, "filename": "float_exprs.44.wasm"}, + {"type": "assert_return", "line": 901, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 902, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 903, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 904, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 905, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 906, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 907, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 908, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 909, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 910, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 911, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 912, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 913, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 914, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 915, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 916, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 917, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 918, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 919, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 920, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 921, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 922, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 923, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 924, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 925, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 926, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 927, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 928, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 929, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 930, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 931, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 932, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "module", "line": 936, "filename": "float_exprs.45.wasm"}, + {"type": "assert_return", "line": 948, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 949, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 950, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 951, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 952, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 953, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 954, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 955, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 956, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 957, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 958, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 959, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 960, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 961, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 962, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 963, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 964, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 965, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 966, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 967, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 968, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 969, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 970, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 971, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 972, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 973, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 974, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 975, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 976, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 977, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 978, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 979, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 983, "filename": "float_exprs.46.wasm"}, + {"type": "assert_return", "line": 1027, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1028, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1029, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1030, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1031, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1032, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1033, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1034, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1035, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1036, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1037, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1038, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1039, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1040, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1041, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1042, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1043, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1044, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1045, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1046, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1047, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1048, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1049, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1050, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1051, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1052, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1053, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1054, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1055, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1056, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1057, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1058, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1062, "filename": "float_exprs.47.wasm"}, + {"type": "assert_return", "line": 1074, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 1075, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 1076, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1077, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1078, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 1079, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 1080, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1081, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1082, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 1083, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1084, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1085, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1086, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 1087, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1088, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1089, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1090, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 1091, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 1092, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1093, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1094, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 1095, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 1096, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1097, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1098, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 1099, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1100, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1101, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1102, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 1103, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1104, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1105, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1109, "filename": "float_exprs.48.wasm"}, + {"type": "assert_return", "line": 1153, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 1154, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 1155, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1156, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1157, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 1158, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 1159, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1160, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1161, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 1162, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1163, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1164, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1165, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 1166, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1167, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1168, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1169, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 1170, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 1171, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1172, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1173, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 1174, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 1175, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1176, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1177, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 1178, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1179, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1180, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1181, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 1182, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1183, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1184, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1189, "filename": "float_exprs.49.wasm"}, + {"type": "assert_return", "line": 1198, "action": {"type": "invoke", "field": "f32.incorrect_correction", "args": []}, "expected": [{"type": "f32", "value": "872415232"}]}, + {"type": "assert_return", "line": 1199, "action": {"type": "invoke", "field": "f64.incorrect_correction", "args": []}, "expected": [{"type": "f64", "value": "13596367275031527424"}]}, + {"type": "module", "line": 1204, "filename": "float_exprs.50.wasm"}, + {"type": "assert_return", "line": 1221, "action": {"type": "invoke", "field": "calculate", "args": []}, "expected": [{"type": "f32", "value": "3286857379"}]}, + {"type": "module", "line": 1223, "filename": "float_exprs.51.wasm"}, + {"type": "assert_return", "line": 1240, "action": {"type": "invoke", "field": "calculate", "args": []}, "expected": [{"type": "f64", "value": "13870293918930799763"}]}, + {"type": "module", "line": 1245, "filename": "float_exprs.52.wasm"}, + {"type": "assert_return", "line": 1251, "action": {"type": "invoke", "field": "llvm_pr26746", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "module", "line": 1256, "filename": "float_exprs.53.wasm"}, + {"type": "assert_return", "line": 1262, "action": {"type": "invoke", "field": "llvm_pr27153", "args": [{"type": "i32", "value": "33554434"}]}, "expected": [{"type": "f32", "value": "1270874112"}]}, + {"type": "module", "line": 1267, "filename": "float_exprs.54.wasm"}, + {"type": "assert_return", "line": 1274, "action": {"type": "invoke", "field": "llvm_pr27036", "args": [{"type": "i32", "value": "4269932491"}, {"type": "i32", "value": "14942208"}]}, "expected": [{"type": "f32", "value": "3407478836"}]}, + {"type": "module", "line": 1284, "filename": "float_exprs.55.wasm"}, + {"type": "assert_return", "line": 1298, "action": {"type": "invoke", "field": "thepast0", "args": [{"type": "f64", "value": "9007199254740992"}, {"type": "f64", "value": "4607182418800017407"}, {"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4602678819172646912"}]}, "expected": [{"type": "f64", "value": "9007199254740991"}]}, + {"type": "assert_return", "line": 1299, "action": {"type": "invoke", "field": "thepast1", "args": [{"type": "f64", "value": "4363988038922010624"}, {"type": "f64", "value": "4607182418800017407"}, {"type": "f64", "value": "4363988038922010624"}]}, "expected": [{"type": "f64", "value": "13348669295526150144"}]}, + {"type": "assert_return", "line": 1300, "action": {"type": "invoke", "field": "thepast2", "args": [{"type": "f32", "value": "16777216"}, {"type": "f32", "value": "1056964608"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, + {"type": "module", "line": 1305, "filename": "float_exprs.56.wasm"}, + {"type": "assert_return", "line": 1311, "action": {"type": "invoke", "field": "inverse", "args": [{"type": "f32", "value": "1119879168"}]}, "expected": [{"type": "f32", "value": "1009429163"}]}, + {"type": "module", "line": 1316, "filename": "float_exprs.57.wasm"}, + {"type": "assert_return", "line": 1326, "action": {"type": "invoke", "field": "f32_sqrt_minus_2", "args": [{"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1327, "action": {"type": "invoke", "field": "f64_sqrt_minus_2", "args": [{"type": "f64", "value": "4616189618054758400"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 1331, "filename": "float_exprs.58.wasm"}, + {"type": "assert_return", "line": 1339, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "3765723020"}]}, "expected": [{"type": "f32", "value": "3765723019"}]}, + {"type": "assert_return", "line": 1340, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "426844452"}]}, "expected": [{"type": "f32", "value": "426844451"}]}, + {"type": "assert_return", "line": 1341, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "535132276"}]}, "expected": [{"type": "f32", "value": "535132277"}]}, + {"type": "assert_return", "line": 1342, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "3253941441"}]}, "expected": [{"type": "f32", "value": "3253941442"}]}, + {"type": "assert_return", "line": 1343, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "1660734603"}]}, "expected": [{"type": "f32", "value": "1660734602"}]}, + {"type": "assert_return", "line": 1345, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1346, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1347, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 1348, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 1350, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "14500888369201570768"}]}, "expected": [{"type": "f64", "value": "14500888369201570769"}]}, + {"type": "assert_return", "line": 1351, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "14132092565459057123"}]}, "expected": [{"type": "f64", "value": "14132092565459057122"}]}, + {"type": "assert_return", "line": 1352, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "5359183527603521526"}]}, "expected": [{"type": "f64", "value": "5359183527603521525"}]}, + {"type": "assert_return", "line": 1353, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "1521566147669375634"}]}, "expected": [{"type": "f64", "value": "1521566147669375633"}]}, + {"type": "assert_return", "line": 1354, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "8671785631545870379"}]}, "expected": [{"type": "f64", "value": "8671785631545870378"}]}, + {"type": "assert_return", "line": 1356, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1357, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1358, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 1359, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "module", "line": 1363, "filename": "float_exprs.59.wasm"}, + {"type": "assert_return", "line": 1373, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "2759308231"}, {"type": "f32", "value": "618704988"}]}, "expected": [{"type": "f32", "value": "2315864577"}]}, + {"type": "assert_return", "line": 1374, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3415653214"}, {"type": "f32", "value": "1274676302"}]}, "expected": [{"type": "f32", "value": "3625675853"}]}, + {"type": "assert_return", "line": 1375, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1446924633"}, {"type": "f32", "value": "3607373982"}]}, "expected": [{"type": "f32", "value": "4000155759"}]}, + {"type": "assert_return", "line": 1376, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1212067608"}, {"type": "f32", "value": "3278094810"}]}, "expected": [{"type": "f32", "value": "1359874131"}]}, + {"type": "assert_return", "line": 1377, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3278732464"}, {"type": "f32", "value": "3379389272"}]}, "expected": [{"type": "f32", "value": "3546030359"}]}, + {"type": "assert_return", "line": 1379, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "2467435761933928117"}, {"type": "f64", "value": "2526113756828458004"}]}, "expected": [{"type": "f64", "value": "9668435399096543331"}]}, + {"type": "assert_return", "line": 1380, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "2911983657790464931"}, {"type": "f64", "value": "2814431682419759911"}]}, "expected": [{"type": "f64", "value": "1217162942843921803"}]}, + {"type": "assert_return", "line": 1381, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "12131637044948792058"}, {"type": "f64", "value": "12170782965730311956"}]}, "expected": [{"type": "f64", "value": "10511676135434922533"}]}, + {"type": "assert_return", "line": 1382, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "14639789466354372633"}, {"type": "f64", "value": "5456963169336729236"}]}, "expected": [{"type": "f64", "value": "15530333405173431543"}]}, + {"type": "assert_return", "line": 1383, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "5121779675912507154"}, {"type": "f64", "value": "14237286623175920791"}]}, "expected": [{"type": "f64", "value": "5636689734063865714"}]}, + {"type": "module", "line": 1387, "filename": "float_exprs.60.wasm"}, + {"type": "assert_return", "line": 1397, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "684135946"}, {"type": "f32", "value": "744319693"}]}, "expected": [{"type": "f32", "value": "2571075368"}]}, + {"type": "assert_return", "line": 1398, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3560929481"}, {"type": "f32", "value": "3496840229"}]}, "expected": [{"type": "f32", "value": "1762604185"}]}, + {"type": "assert_return", "line": 1399, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "968841772"}, {"type": "f32", "value": "3106497100"}]}, "expected": [{"type": "f32", "value": "870712803"}]}, + {"type": "assert_return", "line": 1400, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "697514723"}, {"type": "f32", "value": "2834753933"}]}, "expected": [{"type": "f32", "value": "327914662"}]}, + {"type": "assert_return", "line": 1401, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1498230729"}, {"type": "f32", "value": "3650453580"}]}, "expected": [{"type": "f32", "value": "4080583891"}]}, + {"type": "assert_return", "line": 1403, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "6212515167506370409"}, {"type": "f64", "value": "15348474890798978273"}]}, "expected": [{"type": "f64", "value": "7818515589337550196"}]}, + {"type": "assert_return", "line": 1404, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "15222970140370015722"}, {"type": "f64", "value": "15325207139996136125"}]}, "expected": [{"type": "f64", "value": "16819892485880140289"}]}, + {"type": "assert_return", "line": 1405, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "4797439202963874050"}, {"type": "f64", "value": "14009643534571442918"}]}, "expected": [{"type": "f64", "value": "4987747999326390045"}]}, + {"type": "assert_return", "line": 1406, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "14653559129294038194"}, {"type": "f64", "value": "14581996260169223461"}]}, "expected": [{"type": "f64", "value": "6253339631158964222"}]}, + {"type": "assert_return", "line": 1407, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "12768321634751930140"}, {"type": "f64", "value": "12767602092732820937"}]}, "expected": [{"type": "f64", "value": "2473652960990319032"}]}, + {"type": "module", "line": 1412, "filename": "float_exprs.61.wasm"}, + {"type": "assert_return", "line": 1445, "action": {"type": "invoke", "field": "f32.simple_x4_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "16"}, {"type": "i32", "value": "32"}]}, "expected": []}, + {"type": "assert_return", "line": 1446, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "32"}]}, "expected": [{"type": "f32", "value": "2"}]}, + {"type": "assert_return", "line": 1447, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "36"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1448, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "40"}]}, "expected": [{"type": "f32", "value": "1"}]}, + {"type": "assert_return", "line": 1449, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "44"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, + {"type": "module", "line": 1451, "filename": "float_exprs.62.wasm"}, + {"type": "assert_return", "line": 1484, "action": {"type": "invoke", "field": "f64.simple_x4_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "32"}, {"type": "i32", "value": "64"}]}, "expected": []}, + {"type": "assert_return", "line": 1485, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "64"}]}, "expected": [{"type": "f64", "value": "2"}]}, + {"type": "assert_return", "line": 1486, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "72"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1487, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "80"}]}, "expected": [{"type": "f64", "value": "1"}]}, + {"type": "assert_return", "line": 1488, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "88"}]}, "expected": [{"type": "f64", "value": "9223372036854775809"}]}, + {"type": "module", "line": 1493, "filename": "float_exprs.63.wasm"}, + {"type": "assert_return", "line": 1584, "action": {"type": "invoke", "field": "f32.kahan_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f32", "value": "4085779725"}]}, + {"type": "assert_return", "line": 1585, "action": {"type": "invoke", "field": "f32.plain_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f32", "value": "4082113053"}]}, + {"type": "module", "line": 1587, "filename": "float_exprs.64.wasm"}, + {"type": "assert_return", "line": 1635, "action": {"type": "invoke", "field": "f64.kahan_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f64", "value": "9105671289202277512"}]}, + {"type": "assert_return", "line": 1636, "action": {"type": "invoke", "field": "f64.plain_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f64", "value": "9105671289202539655"}]}, + {"type": "module", "line": 1640, "filename": "float_exprs.65.wasm"}, + {"type": "assert_return", "line": 1648, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1649, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1650, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1651, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1653, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1654, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1655, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1656, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1660, "filename": "float_exprs.66.wasm"}, + {"type": "assert_return", "line": 1668, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1669, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1670, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1671, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1673, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1674, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1675, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1676, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1680, "filename": "float_exprs.67.wasm"}, + {"type": "assert_return", "line": 1688, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1689, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1690, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1691, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1693, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1694, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1695, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1696, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1700, "filename": "float_exprs.68.wasm"}, + {"type": "assert_return", "line": 1708, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1709, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1710, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1711, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1713, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1714, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1715, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1716, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "module", "line": 1720, "filename": "float_exprs.69.wasm"}, + {"type": "assert_return", "line": 1734, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "4046243078"}]}, "expected": [{"type": "f32", "value": "4068578245"}]}, + {"type": "assert_return", "line": 1735, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "2573857750"}]}, "expected": [{"type": "f32", "value": "2595190497"}]}, + {"type": "assert_return", "line": 1736, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "419462401"}]}, "expected": [{"type": "f32", "value": "440449921"}]}, + {"type": "assert_return", "line": 1737, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "2955475482"}]}, "expected": [{"type": "f32", "value": "2977789734"}]}, + {"type": "assert_return", "line": 1738, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "3883931973"}]}, "expected": [{"type": "f32", "value": "3904906727"}]}, + {"type": "assert_return", "line": 1740, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "14137662215323058150"}]}, "expected": [{"type": "f64", "value": "14149352706895019994"}]}, + {"type": "assert_return", "line": 1741, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "11424134044545165748"}]}, "expected": [{"type": "f64", "value": "11435767596137037638"}]}, + {"type": "assert_return", "line": 1742, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "15055410132664937138"}]}, "expected": [{"type": "f64", "value": "15066699987142021125"}]}, + {"type": "assert_return", "line": 1743, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "7991451501228919438"}]}, "expected": [{"type": "f64", "value": "8003319959635773419"}]}, + {"type": "assert_return", "line": 1744, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "14886926859367497770"}]}, "expected": [{"type": "f64", "value": "14898679235615764511"}]}, + {"type": "module", "line": 1749, "filename": "float_exprs.70.wasm"}, + {"type": "assert_return", "line": 1757, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "3875242260"}, {"type": "f32", "value": "3086869257"}, {"type": "f32", "value": "3301317576"}]}, "expected": [{"type": "f32", "value": "3911440926"}]}, + {"type": "assert_return", "line": 1758, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "485052055"}, {"type": "f32", "value": "1996083391"}, {"type": "f32", "value": "2276616712"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1759, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "1430470604"}, {"type": "f32", "value": "186144382"}, {"type": "f32", "value": "1953564780"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 1760, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "3101818893"}, {"type": "f32", "value": "4258133430"}, {"type": "f32", "value": "2855958950"}]}, "expected": [{"type": "f32", "value": "2411777082"}]}, + {"type": "assert_return", "line": 1761, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "1458407223"}, {"type": "f32", "value": "1537931089"}, {"type": "f32", "value": "4260989344"}]}, "expected": [{"type": "f32", "value": "2147507000"}]}, + {"type": "assert_return", "line": 1763, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "6128077243319875447"}, {"type": "f64", "value": "7240092044185667120"}, {"type": "f64", "value": "10312472494987686942"}]}, "expected": [{"type": "f64", "value": "16236150182064455170"}]}, + {"type": "assert_return", "line": 1764, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "17395933367696573535"}, {"type": "f64", "value": "4478922858584402707"}, {"type": "f64", "value": "6032094754408482817"}]}, "expected": [{"type": "f64", "value": "16098470347548634769"}]}, + {"type": "assert_return", "line": 1765, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "13843263185226986279"}, {"type": "f64", "value": "17796742619038211051"}, {"type": "f64", "value": "5375701731263473827"}]}, "expected": [{"type": "f64", "value": "44472927"}]}, + {"type": "assert_return", "line": 1766, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "17547288444310957340"}, {"type": "f64", "value": "911654786857739111"}, {"type": "f64", "value": "8937284546802896640"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 1767, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "9835707468114203513"}, {"type": "f64", "value": "1924400690116523912"}, {"type": "f64", "value": "13208934041167870811"}]}, "expected": [{"type": "f64", "value": "3916014548332337260"}]}, + {"type": "module", "line": 1773, "filename": "float_exprs.71.wasm"}, + {"type": "assert_return", "line": 1781, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "2304917983"}, {"type": "f32", "value": "301403678"}, {"type": "f32", "value": "331350955"}, {"type": "f32", "value": "3251297465"}]}, "expected": [{"type": "f32", "value": "148760966"}]}, + {"type": "assert_return", "line": 1782, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "4068974897"}, {"type": "f32", "value": "1276265036"}, {"type": "f32", "value": "930821438"}, {"type": "f32", "value": "1044692964"}]}, "expected": [{"type": "f32", "value": "3742862674"}]}, + {"type": "assert_return", "line": 1783, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "3496980369"}, {"type": "f32", "value": "3548280607"}, {"type": "f32", "value": "3461305482"}, {"type": "f32", "value": "3298174616"}]}, "expected": [{"type": "f32", "value": "1176926862"}]}, + {"type": "assert_return", "line": 1784, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "4135236702"}, {"type": "f32", "value": "787270424"}, {"type": "f32", "value": "932959293"}, {"type": "f32", "value": "1724950821"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 1785, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "622783177"}, {"type": "f32", "value": "2677642769"}, {"type": "f32", "value": "307759154"}, {"type": "f32", "value": "768171421"}]}, "expected": [{"type": "f32", "value": "2844661464"}]}, + {"type": "assert_return", "line": 1787, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "10143060558527560466"}, {"type": "f64", "value": "11745059379675007839"}, {"type": "f64", "value": "16295837305232663584"}, {"type": "f64", "value": "5444961058358534642"}]}, "expected": [{"type": "f64", "value": "13856326607560224491"}]}, + {"type": "assert_return", "line": 1788, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "14349445329289351080"}, {"type": "f64", "value": "468238185841254727"}, {"type": "f64", "value": "15463559257629249878"}, {"type": "f64", "value": "15937497686185055572"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 1789, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "15220380342429201729"}, {"type": "f64", "value": "14697937818549468616"}, {"type": "f64", "value": "13203624158275174657"}, {"type": "f64", "value": "17131104131485469546"}]}, "expected": [{"type": "f64", "value": "1202126128702318245"}]}, + {"type": "assert_return", "line": 1790, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "14414969397981384765"}, {"type": "f64", "value": "12269327994486371199"}, {"type": "f64", "value": "298707625567048656"}, {"type": "f64", "value": "5613107161545919917"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1791, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "4529089342618677929"}, {"type": "f64", "value": "3361245300043094097"}, {"type": "f64", "value": "1815899012046749567"}, {"type": "f64", "value": "15418396504351552390"}]}, "expected": [{"type": "f64", "value": "10619033301585441215"}]}, + {"type": "module", "line": 1795, "filename": "float_exprs.72.wasm"}, + {"type": "assert_return", "line": 1803, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "1136439096"}, {"type": "f32", "value": "3173274359"}, {"type": "f32", "value": "4274852390"}]}, "expected": [{"type": "f32", "value": "2221638875"}]}, + {"type": "assert_return", "line": 1804, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2690073844"}, {"type": "f32", "value": "2809448479"}, {"type": "f32", "value": "3608905030"}]}, "expected": [{"type": "f32", "value": "264862203"}]}, + {"type": "assert_return", "line": 1805, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2830184964"}, {"type": "f32", "value": "530019033"}, {"type": "f32", "value": "3623253973"}]}, "expected": [{"type": "f32", "value": "272108594"}]}, + {"type": "assert_return", "line": 1806, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2365787800"}, {"type": "f32", "value": "245111369"}, {"type": "f32", "value": "3952003433"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1807, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "982471119"}, {"type": "f32", "value": "1045692415"}, {"type": "f32", "value": "37216954"}]}, "expected": [{"type": "f32", "value": "2073319791"}]}, + {"type": "assert_return", "line": 1809, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "15770585325769044278"}, {"type": "f64", "value": "6564157675451289455"}, {"type": "f64", "value": "8712254759989822359"}]}, "expected": [{"type": "f64", "value": "2458462832069881218"}]}, + {"type": "assert_return", "line": 1810, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "14069844870254671283"}, {"type": "f64", "value": "4634122757084803708"}, {"type": "f64", "value": "9524897388132352235"}]}, "expected": [{"type": "f64", "value": "9152039358940941283"}]}, + {"type": "assert_return", "line": 1811, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "9479648703296052622"}, {"type": "f64", "value": "214573661502224386"}, {"type": "f64", "value": "6877551490107761946"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1812, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "6019502660029506228"}, {"type": "f64", "value": "15316513033818836241"}, {"type": "f64", "value": "4039967192182502935"}]}, "expected": [{"type": "f64", "value": "15883525310425977300"}]}, + {"type": "assert_return", "line": 1813, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "10555667216821129841"}, {"type": "f64", "value": "1207418919037494573"}, {"type": "f64", "value": "4296330408727545598"}]}, "expected": [{"type": "f64", "value": "10866511466898347555"}]}, + {"type": "module", "line": 1817, "filename": "float_exprs.73.wasm"}, + {"type": "assert_return", "line": 1825, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2662226315"}]}, "expected": [{"type": "f32", "value": "514742673"}]}, + {"type": "assert_return", "line": 1826, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2606267634"}]}, "expected": [{"type": "f32", "value": "458819801"}]}, + {"type": "assert_return", "line": 1827, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2624528574"}]}, "expected": [{"type": "f32", "value": "477049564"}]}, + {"type": "assert_return", "line": 1828, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "347235385"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1829, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "1978715378"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 1831, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "2225189009770021885"}]}, "expected": [{"type": "f64", "value": "2225189011649283571"}]}, + {"type": "assert_return", "line": 1832, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11517048459773840771"}]}, "expected": [{"type": "f64", "value": "2293676422919064961"}]}, + {"type": "assert_return", "line": 1833, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11484764485761855006"}]}, "expected": [{"type": "f64", "value": "2261392448906973069"}]}, + {"type": "assert_return", "line": 1834, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11056484744549647728"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1835, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "8465406758332488378"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "module", "line": 1839, "filename": "float_exprs.74.wasm"}, + {"type": "assert_return", "line": 1847, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "24047316"}, {"type": "f32", "value": "2517821717"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1848, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "295749258"}, {"type": "f32", "value": "803416494"}]}, "expected": [{"type": "f32", "value": "549395357"}]}, + {"type": "assert_return", "line": 1849, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "329708528"}, {"type": "f32", "value": "1120042892"}]}, "expected": [{"type": "f32", "value": "724841268"}]}, + {"type": "assert_return", "line": 1850, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "1916535951"}, {"type": "f32", "value": "994115420"}]}, "expected": [{"type": "f32", "value": "1455324620"}]}, + {"type": "assert_return", "line": 1851, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "598482176"}, {"type": "f32", "value": "990534933"}]}, "expected": [{"type": "f32", "value": "794443079"}]}, + {"type": "assert_return", "line": 1853, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "10974446854152441278"}, {"type": "f64", "value": "13797896470155574122"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1854, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "1712959863583927241"}, {"type": "f64", "value": "2792003944717853898"}]}, "expected": [{"type": "f64", "value": "2252469008297979510"}]}, + {"type": "assert_return", "line": 1855, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "4208351758938831157"}, {"type": "f64", "value": "497361189565243603"}]}, "expected": [{"type": "f64", "value": "2352856462697312748"}]}, + {"type": "assert_return", "line": 1856, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "2976792199849816182"}, {"type": "f64", "value": "2030444188042608984"}]}, "expected": [{"type": "f64", "value": "2503613111125550255"}]}, + {"type": "assert_return", "line": 1857, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "4717634334691577101"}, {"type": "f64", "value": "6919598687070693285"}]}, "expected": [{"type": "f64", "value": "5818898567902921651"}]}, + {"type": "module", "line": 1861, "filename": "float_exprs.75.wasm"}, + {"type": "assert_return", "line": 1869, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "3428799709"}, {"type": "f32", "value": "2733489079"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1870, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "1339867611"}, {"type": "f32", "value": "1296568207"}]}, "expected": [{"type": "f32", "value": "1086203643"}]}, + {"type": "assert_return", "line": 1871, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "65679161"}, {"type": "f32", "value": "1196795110"}]}, "expected": [{"type": "f32", "value": "498959746"}]}, + {"type": "assert_return", "line": 1872, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "1566143010"}, {"type": "f32", "value": "816694667"}]}, "expected": [{"type": "f32", "value": "1439333972"}]}, + {"type": "assert_return", "line": 1873, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "130133331"}, {"type": "f32", "value": "208189588"}]}, "expected": [{"type": "f32", "value": "1025844032"}]}, + {"type": "assert_return", "line": 1875, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "10629913473787695463"}, {"type": "f64", "value": "12991130264919696663"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1876, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "1966780663211935584"}, {"type": "f64", "value": "7043916066229883379"}]}, "expected": [{"type": "f64", "value": "2068364230648818889"}]}, + {"type": "assert_return", "line": 1877, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "6965599900716272009"}, {"type": "f64", "value": "4118781927977980600"}]}, "expected": [{"type": "f64", "value": "6030491425828883991"}]}, + {"type": "assert_return", "line": 1878, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "962551478168675351"}, {"type": "f64", "value": "5918292176617055751"}]}, "expected": [{"type": "f64", "value": "2129092583060403799"}]}, + {"type": "assert_return", "line": 1879, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "1056821405580891413"}, {"type": "f64", "value": "8865548665903786673"}]}, "expected": [{"type": "f64", "value": "702724841785532050"}]}, + {"type": "module", "line": 1883, "filename": "float_exprs.76.wasm"}, + {"type": "assert_return", "line": 1891, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3900330981"}, {"type": "f32", "value": "1843416431"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 1892, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "2210946958"}, {"type": "f32", "value": "256302916"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1893, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "1312995444"}, {"type": "f32", "value": "2371494"}]}, "expected": [{"type": "f32", "value": "1849105549"}]}, + {"type": "assert_return", "line": 1894, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3576537897"}, {"type": "f32", "value": "2010442638"}]}, "expected": [{"type": "f32", "value": "3104219421"}]}, + {"type": "assert_return", "line": 1895, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3284697858"}, {"type": "f32", "value": "1124488329"}]}, "expected": [{"type": "f32", "value": "3255461622"}]}, + {"type": "assert_return", "line": 1897, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "7751219282814906463"}, {"type": "f64", "value": "8023732701704228537"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 1898, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "10108528314069607083"}, {"type": "f64", "value": "1595930056995453707"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1899, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "2695209648295623224"}, {"type": "f64", "value": "7133480874314061811"}]}, "expected": [{"type": "f64", "value": "1432338140829931582"}]}, + {"type": "assert_return", "line": 1900, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "15416524255949334213"}, {"type": "f64", "value": "2434442666062773630"}]}, "expected": [{"type": "f64", "value": "16502590179898118478"}]}, + {"type": "assert_return", "line": 1901, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "5076901024782455083"}, {"type": "f64", "value": "8399438310541178654"}]}, "expected": [{"type": "f64", "value": "3180744754328846996"}]}, + {"type": "module", "line": 1906, "filename": "float_exprs.77.wasm"}, + {"type": "assert_return", "line": 1914, "action": {"type": "invoke", "field": "f32.no_flush_intermediate_subnormal", "args": [{"type": "f32", "value": "8388608"}, {"type": "f32", "value": "872415232"}, {"type": "f32", "value": "1258291200"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, + {"type": "assert_return", "line": 1915, "action": {"type": "invoke", "field": "f64.no_flush_intermediate_subnormal", "args": [{"type": "f64", "value": "4503599627370496"}, {"type": "f64", "value": "4372995238176751616"}, {"type": "f64", "value": "4841369599423283200"}]}, "expected": [{"type": "f64", "value": "4503599627370496"}]}, + {"type": "module", "line": 1920, "filename": "float_exprs.78.wasm"}, + {"type": "assert_return", "line": 1943, "action": {"type": "invoke", "field": "f32.recoding_eq", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1944, "action": {"type": "invoke", "field": "f32.recoding_le", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1945, "action": {"type": "invoke", "field": "f32.recoding_lt", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1947, "action": {"type": "invoke", "field": "f32.recoding_eq", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1948, "action": {"type": "invoke", "field": "f32.recoding_le", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1949, "action": {"type": "invoke", "field": "f32.recoding_lt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1951, "action": {"type": "invoke", "field": "f64.recoding_eq", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1952, "action": {"type": "invoke", "field": "f64.recoding_le", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1953, "action": {"type": "invoke", "field": "f64.recoding_lt", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1955, "action": {"type": "invoke", "field": "f64.recoding_eq", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1956, "action": {"type": "invoke", "field": "f64.recoding_le", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1957, "action": {"type": "invoke", "field": "f64.recoding_lt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1959, "action": {"type": "invoke", "field": "recoding_demote", "args": [{"type": "f64", "value": "4014054135371399168"}, {"type": "f32", "value": "1150853120"}]}, "expected": [{"type": "f32", "value": "46548238"}]}, + {"type": "module", "line": 1964, "filename": "float_exprs.79.wasm"}, + {"type": "assert_return", "line": 1972, "action": {"type": "invoke", "field": "f32.no_extended_precision_div", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1054567863"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1973, "action": {"type": "invoke", "field": "f64.no_extended_precision_div", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4619567317775286272"}, {"type": "f64", "value": "4601392076421969627"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "module", "line": 1980, "filename": "float_exprs.80.wasm"}, + {"type": "assert_return", "line": 1988, "action": {"type": "invoke", "field": "f32.no_distribute_exact", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1989, "action": {"type": "invoke", "field": "f64.no_distribute_exact", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 1994, "filename": "float_exprs.81.wasm"}, + {"type": "assert_return", "line": 2026, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1068827891"}]}, + {"type": "assert_return", "line": 2027, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_2", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1084227584"}, {"type": "f32", "value": "1078530011"}, {"type": "f32", "value": "1088421888"}]}, "expected": [{"type": "f32", "value": "1068827946"}]}, + {"type": "assert_return", "line": 2028, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1071494103"}]}, + {"type": "assert_return", "line": 2029, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_3", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1076754516"}, {"type": "f32", "value": "1078530011"}]}, "expected": [{"type": "f32", "value": "1071481194"}]}, + {"type": "assert_return", "line": 2030, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1074731965"}]}, + {"type": "assert_return", "line": 2031, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_5", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1076754516"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1074730668"}]}, + {"type": "assert_return", "line": 2032, "action": {"type": "invoke", "field": "f32.xkcd_better_sqrt_5", "args": [{"type": "f32", "value": "1095761920"}, {"type": "f32", "value": "1082130432"}, {"type": "f32", "value": "1078530011"}, {"type": "f32", "value": "1103101952"}]}, "expected": [{"type": "f32", "value": "1074731965"}]}, + {"type": "assert_return", "line": 2034, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4609047870845172685"}]}, + {"type": "assert_return", "line": 2035, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_2", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4617315517961601024"}, {"type": "f64", "value": "4614256656552045848"}, {"type": "f64", "value": "4619567317775286272"}]}, "expected": [{"type": "f64", "value": "4609047900099118431"}]}, + {"type": "assert_return", "line": 2036, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4610479282544200874"}]}, + {"type": "assert_return", "line": 2037, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_3", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613303445314885481"}, {"type": "f64", "value": "4614256656552045848"}]}, "expected": [{"type": "f64", "value": "4610472352185749397"}]}, + {"type": "assert_return", "line": 2038, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4612217596255138984"}]}, + {"type": "assert_return", "line": 2039, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_5", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613303445314885481"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4612216900234722254"}]}, + {"type": "assert_return", "line": 2040, "action": {"type": "invoke", "field": "f64.xkcd_better_sqrt_5", "args": [{"type": "f64", "value": "4623507967449235456"}, {"type": "f64", "value": "4616189618054758400"}, {"type": "f64", "value": "4614256656552045848"}, {"type": "f64", "value": "4627448617123184640"}]}, "expected": [{"type": "f64", "value": "4612217595876713891"}]}, + {"type": "module", "line": 2045, "filename": "float_exprs.82.wasm"}, + {"type": "assert_return", "line": 2123, "action": {"type": "invoke", "field": "f32.compute_radix", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 2124, "action": {"type": "invoke", "field": "f64.compute_radix", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "module", "line": 2129, "filename": "float_exprs.83.wasm"}, + {"type": "assert_return", "line": 2137, "action": {"type": "invoke", "field": "f32.no_fold_sub1_mul_add", "args": [{"type": "f32", "value": "796917760"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 2138, "action": {"type": "invoke", "field": "f64.no_fold_sub1_mul_add", "args": [{"type": "f64", "value": "4318952042648305664"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 2143, "filename": "float_exprs.84.wasm"}, + {"type": "assert_return", "line": 2157, "action": {"type": "invoke", "field": "f32.no_fold_add_le_monotonicity", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2158, "action": {"type": "invoke", "field": "f32.no_fold_add_le_monotonicity", "args": [{"type": "f32", "value": "2139095040"}, {"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2159, "action": {"type": "invoke", "field": "f64.no_fold_add_le_monotonicity", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2160, "action": {"type": "invoke", "field": "f64.no_fold_add_le_monotonicity", "args": [{"type": "f64", "value": "9218868437227405312"}, {"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "0"}]}, {"type": "module", "line": 2164, "filename": "float_exprs.85.wasm"}, - {"type": "assert_return", "line": 2212, "action": {"type": "invoke", "field": "f32.epsilon", "args": []}, "expected": [{"type": "f32", "value": "872415232"}]}, - {"type": "assert_return", "line": 2213, "action": {"type": "invoke", "field": "f64.epsilon", "args": []}, "expected": [{"type": "f64", "value": "4372995238176751616"}]}, - {"type": "module", "line": 2218, "filename": "float_exprs.86.wasm"}, - {"type": "assert_return", "line": 2238, "action": {"type": "invoke", "field": "f32.no_trichotomy_lt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2239, "action": {"type": "invoke", "field": "f32.no_trichotomy_le", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2240, "action": {"type": "invoke", "field": "f32.no_trichotomy_gt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2241, "action": {"type": "invoke", "field": "f32.no_trichotomy_ge", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2242, "action": {"type": "invoke", "field": "f64.no_trichotomy_lt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2243, "action": {"type": "invoke", "field": "f64.no_trichotomy_le", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2244, "action": {"type": "invoke", "field": "f64.no_trichotomy_gt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2245, "action": {"type": "invoke", "field": "f64.no_trichotomy_ge", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "module", "line": 2250, "filename": "float_exprs.87.wasm"}, - {"type": "assert_return", "line": 2329, "action": {"type": "invoke", "field": "f32.arithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2139107856"}, {"type": "i32", "value": "2139107856"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2330, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2331, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "2143289344"}, {"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2332, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "4290772992"}, {"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2333, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "2143289344"}, {"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2334, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "4290772992"}, {"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2335, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2143302160"}]}, "expected": [{"type": "i32", "value": "4290785808"}]}, - {"type": "assert_return", "line": 2336, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "4290785808"}]}, "expected": [{"type": "i32", "value": "2143302160"}]}, - {"type": "assert_return", "line": 2337, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2139107856"}]}, "expected": [{"type": "i32", "value": "4286591504"}]}, - {"type": "assert_return", "line": 2338, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "4286591504"}]}, "expected": [{"type": "i32", "value": "2139107856"}]}, - {"type": "assert_return", "line": 2339, "action": {"type": "invoke", "field": "f64.arithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9218868437227418128"}, {"type": "i64", "value": "9218868437227418128"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2340, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "0"}, {"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2341, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041090560"}, {"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2342, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895866368"}, {"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2343, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041090560"}, {"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2344, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895866368"}, {"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2345, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041103376"}]}, "expected": [{"type": "i64", "value": "18444492273895879184"}]}, - {"type": "assert_return", "line": 2346, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895879184"}]}, "expected": [{"type": "i64", "value": "9221120237041103376"}]}, - {"type": "assert_return", "line": 2347, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9218868437227418128"}]}, "expected": [{"type": "i64", "value": "18442240474082193936"}]}, - {"type": "assert_return", "line": 2348, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "18442240474082193936"}]}, "expected": [{"type": "i64", "value": "9218868437227418128"}]}, - {"type": "assert_return", "line": 2349, "action": {"type": "invoke", "field": "f32.no_fold_sub_zero", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2350, "action": {"type": "invoke", "field": "f32.no_fold_neg0_sub", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2351, "action": {"type": "invoke", "field": "f32.no_fold_mul_one", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2352, "action": {"type": "invoke", "field": "f32.no_fold_neg1_mul", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2353, "action": {"type": "invoke", "field": "f32.no_fold_div_one", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2354, "action": {"type": "invoke", "field": "f32.no_fold_div_neg1", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2355, "action": {"type": "invoke", "field": "f64.no_fold_sub_zero", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2356, "action": {"type": "invoke", "field": "f64.no_fold_neg0_sub", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2357, "action": {"type": "invoke", "field": "f64.no_fold_mul_one", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2358, "action": {"type": "invoke", "field": "f64.no_fold_neg1_mul", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2359, "action": {"type": "invoke", "field": "f64.no_fold_div_one", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2360, "action": {"type": "invoke", "field": "f64.no_fold_div_neg1", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2361, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "module", "line": 2366, "filename": "float_exprs.88.wasm"}, - {"type": "assert_return", "line": 2389, "action": {"type": "invoke", "field": "dot_product_example", "args": [{"type": "f64", "value": "4719355144821538816"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "4725141118604279808"}, {"type": "f64", "value": "4720637518976909312"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "13938223582048944128"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 2393, "action": {"type": "invoke", "field": "with_binary_sum_collapse", "args": [{"type": "f64", "value": "4719355144821538816"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "4725141118604279808"}, {"type": "f64", "value": "4720637518976909312"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "13938223582048944128"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "module", "line": 2400, "filename": "float_exprs.89.wasm"}, - {"type": "assert_return", "line": 2411, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 2412, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1066192077"}, {"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 2413, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1067030937"}, {"type": "f32", "value": "1067030937"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 2414, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 2415, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4607632778762754458"}, {"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 2416, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4608083138725491507"}, {"type": "f64", "value": "4608083138725491507"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 2421, "filename": "float_exprs.90.wasm"}, - {"type": "assert_return", "line": 2430, "action": {"type": "invoke", "field": "f32.division_by_small_number", "args": [{"type": "f32", "value": "1289068416"}, {"type": "f32", "value": "1203982336"}, {"type": "f32", "value": "980151802"}]}, "expected": [{"type": "f32", "value": "1230570368"}]}, - {"type": "assert_return", "line": 2431, "action": {"type": "invoke", "field": "f64.division_by_small_number", "args": [{"type": "f64", "value": "4727288602252279808"}, {"type": "f64", "value": "4681608360884174848"}, {"type": "f64", "value": "4561440258104740754"}]}, "expected": [{"type": "f64", "value": "4695882709507797376"}]}, - {"type": "module", "line": 2436, "filename": "float_exprs.91.wasm"}, - {"type": "assert_return", "line": 2443, "action": {"type": "invoke", "field": "f32.golden_ratio", "args": [{"type": "f32", "value": "1056964608"}, {"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1070537661"}]}, - {"type": "assert_return", "line": 2444, "action": {"type": "invoke", "field": "f64.golden_ratio", "args": [{"type": "f64", "value": "4602678819172646912"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4609965796441453736"}]}, - {"type": "module", "line": 2449, "filename": "float_exprs.92.wasm"}, - {"type": "assert_return", "line": 2462, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 2463, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1070537661"}]}, - {"type": "assert_return", "line": 2464, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1075479162"}]}, - {"type": "assert_return", "line": 2465, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1079206061"}]}, - {"type": "assert_return", "line": 2466, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "1082625502"}]}, - {"type": "assert_return", "line": 2467, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1084631458"}]}, - {"type": "assert_return", "line": 2468, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 2469, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4609965796441453736"}]}, - {"type": "assert_return", "line": 2470, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4612618744449965542"}]}, - {"type": "assert_return", "line": 2471, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4614619608365706490"}]}, - {"type": "assert_return", "line": 2472, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4616189618054758400"}]}, "expected": [{"type": "f64", "value": "4616455406968633940"}]}, - {"type": "assert_return", "line": 2473, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4617532346471836922"}]}, - {"type": "module", "line": 2478, "filename": "float_exprs.93.wasm"}, - {"type": "assert_return", "line": 2483, "action": {"type": "invoke", "field": "point_four", "args": [{"type": "f64", "value": "4616189618054758400"}, {"type": "f64", "value": "4621819117588971520"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "module", "line": 2488, "filename": "float_exprs.94.wasm"}, - {"type": "assert_return", "line": 2553, "action": {"type": "invoke", "field": "tau", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "f64", "value": "4618760256179416340"}]}, - {"type": "assert_return", "line": 2554, "action": {"type": "invoke", "field": "tau", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "f64", "value": "4618760256179416344"}]}, - {"type": "module", "line": 2558, "filename": "float_exprs.95.wasm"}, - {"type": "assert_return", "line": 2569, "action": {"type": "invoke", "field": "f32.no_fold_conditional_inc", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 2570, "action": {"type": "invoke", "field": "f64.no_fold_conditional_inc", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}]} + {"type": "assert_return", "line": 2190, "action": {"type": "invoke", "field": "f32.not_lt", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2191, "action": {"type": "invoke", "field": "f32.not_le", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2192, "action": {"type": "invoke", "field": "f32.not_gt", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2193, "action": {"type": "invoke", "field": "f32.not_ge", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2194, "action": {"type": "invoke", "field": "f64.not_lt", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2195, "action": {"type": "invoke", "field": "f64.not_le", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2196, "action": {"type": "invoke", "field": "f64.not_gt", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2197, "action": {"type": "invoke", "field": "f64.not_ge", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "module", "line": 2203, "filename": "float_exprs.86.wasm"}, + {"type": "assert_return", "line": 2211, "action": {"type": "invoke", "field": "f32.epsilon", "args": []}, "expected": [{"type": "f32", "value": "3019898880"}]}, + {"type": "assert_return", "line": 2212, "action": {"type": "invoke", "field": "f64.epsilon", "args": []}, "expected": [{"type": "f64", "value": "4372995238176751616"}]}, + {"type": "module", "line": 2218, "filename": "float_exprs.87.wasm"}, + {"type": "assert_return", "line": 2266, "action": {"type": "invoke", "field": "f32.epsilon", "args": []}, "expected": [{"type": "f32", "value": "872415232"}]}, + {"type": "assert_return", "line": 2267, "action": {"type": "invoke", "field": "f64.epsilon", "args": []}, "expected": [{"type": "f64", "value": "4372995238176751616"}]}, + {"type": "module", "line": 2272, "filename": "float_exprs.88.wasm"}, + {"type": "assert_return", "line": 2292, "action": {"type": "invoke", "field": "f32.no_trichotomy_lt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2293, "action": {"type": "invoke", "field": "f32.no_trichotomy_le", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2294, "action": {"type": "invoke", "field": "f32.no_trichotomy_gt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2295, "action": {"type": "invoke", "field": "f32.no_trichotomy_ge", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2296, "action": {"type": "invoke", "field": "f64.no_trichotomy_lt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2297, "action": {"type": "invoke", "field": "f64.no_trichotomy_le", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2298, "action": {"type": "invoke", "field": "f64.no_trichotomy_gt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2299, "action": {"type": "invoke", "field": "f64.no_trichotomy_ge", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 2304, "filename": "float_exprs.89.wasm"}, + {"type": "assert_return", "line": 2383, "action": {"type": "invoke", "field": "f32.arithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2139107856"}, {"type": "i32", "value": "2139107856"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2384, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2385, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "2143289344"}, {"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2386, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "4290772992"}, {"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2387, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "2143289344"}, {"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2388, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "4290772992"}, {"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2389, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2143302160"}]}, "expected": [{"type": "i32", "value": "4290785808"}]}, + {"type": "assert_return", "line": 2390, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "4290785808"}]}, "expected": [{"type": "i32", "value": "2143302160"}]}, + {"type": "assert_return", "line": 2391, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2139107856"}]}, "expected": [{"type": "i32", "value": "4286591504"}]}, + {"type": "assert_return", "line": 2392, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "4286591504"}]}, "expected": [{"type": "i32", "value": "2139107856"}]}, + {"type": "assert_return", "line": 2393, "action": {"type": "invoke", "field": "f64.arithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9218868437227418128"}, {"type": "i64", "value": "9218868437227418128"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2394, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "0"}, {"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2395, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041090560"}, {"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2396, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895866368"}, {"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2397, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041090560"}, {"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2398, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895866368"}, {"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2399, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041103376"}]}, "expected": [{"type": "i64", "value": "18444492273895879184"}]}, + {"type": "assert_return", "line": 2400, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895879184"}]}, "expected": [{"type": "i64", "value": "9221120237041103376"}]}, + {"type": "assert_return", "line": 2401, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9218868437227418128"}]}, "expected": [{"type": "i64", "value": "18442240474082193936"}]}, + {"type": "assert_return", "line": 2402, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "18442240474082193936"}]}, "expected": [{"type": "i64", "value": "9218868437227418128"}]}, + {"type": "assert_return", "line": 2403, "action": {"type": "invoke", "field": "f32.no_fold_sub_zero", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2404, "action": {"type": "invoke", "field": "f32.no_fold_neg0_sub", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2405, "action": {"type": "invoke", "field": "f32.no_fold_mul_one", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2406, "action": {"type": "invoke", "field": "f32.no_fold_neg1_mul", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2407, "action": {"type": "invoke", "field": "f32.no_fold_div_one", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2408, "action": {"type": "invoke", "field": "f32.no_fold_div_neg1", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2409, "action": {"type": "invoke", "field": "f64.no_fold_sub_zero", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2410, "action": {"type": "invoke", "field": "f64.no_fold_neg0_sub", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2411, "action": {"type": "invoke", "field": "f64.no_fold_mul_one", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2412, "action": {"type": "invoke", "field": "f64.no_fold_neg1_mul", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2413, "action": {"type": "invoke", "field": "f64.no_fold_div_one", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2414, "action": {"type": "invoke", "field": "f64.no_fold_div_neg1", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2415, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "module", "line": 2420, "filename": "float_exprs.90.wasm"}, + {"type": "assert_return", "line": 2443, "action": {"type": "invoke", "field": "dot_product_example", "args": [{"type": "f64", "value": "4719355144821538816"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "4725141118604279808"}, {"type": "f64", "value": "4720637518976909312"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "13938223582048944128"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 2447, "action": {"type": "invoke", "field": "with_binary_sum_collapse", "args": [{"type": "f64", "value": "4719355144821538816"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "4725141118604279808"}, {"type": "f64", "value": "4720637518976909312"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "13938223582048944128"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "module", "line": 2454, "filename": "float_exprs.91.wasm"}, + {"type": "assert_return", "line": 2465, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 2466, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1066192077"}, {"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 2467, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1067030937"}, {"type": "f32", "value": "1067030937"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 2468, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 2469, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4607632778762754458"}, {"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 2470, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4608083138725491507"}, {"type": "f64", "value": "4608083138725491507"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 2475, "filename": "float_exprs.92.wasm"}, + {"type": "assert_return", "line": 2484, "action": {"type": "invoke", "field": "f32.division_by_small_number", "args": [{"type": "f32", "value": "1289068416"}, {"type": "f32", "value": "1203982336"}, {"type": "f32", "value": "980151802"}]}, "expected": [{"type": "f32", "value": "1230570368"}]}, + {"type": "assert_return", "line": 2485, "action": {"type": "invoke", "field": "f64.division_by_small_number", "args": [{"type": "f64", "value": "4727288602252279808"}, {"type": "f64", "value": "4681608360884174848"}, {"type": "f64", "value": "4561440258104740754"}]}, "expected": [{"type": "f64", "value": "4695882709507797376"}]}, + {"type": "module", "line": 2490, "filename": "float_exprs.93.wasm"}, + {"type": "assert_return", "line": 2497, "action": {"type": "invoke", "field": "f32.golden_ratio", "args": [{"type": "f32", "value": "1056964608"}, {"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1070537661"}]}, + {"type": "assert_return", "line": 2498, "action": {"type": "invoke", "field": "f64.golden_ratio", "args": [{"type": "f64", "value": "4602678819172646912"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4609965796441453736"}]}, + {"type": "module", "line": 2503, "filename": "float_exprs.94.wasm"}, + {"type": "assert_return", "line": 2516, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 2517, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1070537661"}]}, + {"type": "assert_return", "line": 2518, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1075479162"}]}, + {"type": "assert_return", "line": 2519, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1079206061"}]}, + {"type": "assert_return", "line": 2520, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "1082625502"}]}, + {"type": "assert_return", "line": 2521, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1084631458"}]}, + {"type": "assert_return", "line": 2522, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 2523, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4609965796441453736"}]}, + {"type": "assert_return", "line": 2524, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4612618744449965542"}]}, + {"type": "assert_return", "line": 2525, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4614619608365706490"}]}, + {"type": "assert_return", "line": 2526, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4616189618054758400"}]}, "expected": [{"type": "f64", "value": "4616455406968633940"}]}, + {"type": "assert_return", "line": 2527, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4617532346471836922"}]}, + {"type": "module", "line": 2532, "filename": "float_exprs.95.wasm"}, + {"type": "assert_return", "line": 2537, "action": {"type": "invoke", "field": "point_four", "args": [{"type": "f64", "value": "4616189618054758400"}, {"type": "f64", "value": "4621819117588971520"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 2542, "filename": "float_exprs.96.wasm"}, + {"type": "assert_return", "line": 2607, "action": {"type": "invoke", "field": "tau", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "f64", "value": "4618760256179416340"}]}, + {"type": "assert_return", "line": 2608, "action": {"type": "invoke", "field": "tau", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "f64", "value": "4618760256179416344"}]}, + {"type": "module", "line": 2612, "filename": "float_exprs.97.wasm"}, + {"type": "assert_return", "line": 2623, "action": {"type": "invoke", "field": "f32.no_fold_conditional_inc", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 2624, "action": {"type": "invoke", "field": "f64.no_fold_conditional_inc", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}]} diff --git a/tests/gen/float_literals.0.wasm b/tests/gen/float_literals.0.wasm index c524a6bbb85e60b887301d712cdbf491f8586058..a3ecb1a1f391e99df12debd37ccf019916f36b28 100644 GIT binary patch literal 3010 zcmbtWTWlLu5FO`HyKx>)h)DxY^Dg0$(E1VHjoa7>0SW=q(vrevoo>PkdmY&Z+=`M# z;twQ*gpfc8D)^%+AW+0lDi!62O1ysfLMr{}CsN(Q2NZ63m}Bn zO0HlQ%@+*~DIZamv8*#y*Fs(y-L%N1egLs)E#>lAJ(D@2J#Xb+vNXM*t&mRv<1|nl z=UB^GMuBvV&8W+og++p!!VHxR{2s5Q5g@s9t!bIXBe0p=Sjl`7@vLM%7{Kd}8u=VF zx1-5Y;#!Df8F8&7!GxiW%E>w%aAgo`75O_&p+-QvAoP+(DH_m0F|!U)cp+VNx`6@} z^SYTat!3?St_Yo8UrehAVQP0q&o3Jq;u{I$)eeeApi9Q%G1!7~?Xa;ZitEPu3A&kT zRLo7xt3}?-aw>Fdrz=;A?dg!|YAxG1q*`OI=j=73j{_^k_hUaOT^bB5cmUf*l-Gno z=DbD>)pAZVhPzyCK9?(MX~W2COPQQrgzf&N@fc10Eg`hHJ2Uio$!wi)S#ynn0<4%(E6z?E6Rx-bncvdnW3E*`!0MT|dSxQ`t zIF=C?CkYM1IF+Le!dK|gxYsAB~oYRa)x?FAT)bGV__o(yZFj_EHcEY1FjKE_ujKZu8WAL~PKPeE;8__) zL6cz&7GxL)z3JmXIslUZr&rg5HAbbDIWBxE&Z48#;H!d}O?)nlv+JLTBLG`4vf&;9 zR3m$aP0Y`2XA)%K--W7=EsRQKRRnYlK1!00{n1;~uJdx$fFE4r7uRrA92smn`tM6? zZvV3`JSzg8PfU^VYw6^IdqvHqKCma&gUyf>e{lX-J#{rux!TF^LW3>GMQ-cwmG;Lv z%Hm{mz`v=n;Wq(NgT4#jowy|2#HCfYD*@RJK*~S`Hl1u4P0sz*-<=?U&x1?Sgai<2 zw#ndv$W17AOtEG*c1c7NC*>rc0G#_;1{)GkE>(d|ZvQ*cV;gS|pPcz(jxV*hej^f1 zys=j5`7C^`M29}O*b7jeI2H6e->jkH4DE0`rvum63y|Ddo_-+nb;IP~LoVs|Ph9_NZ`S@khCccb~{L_10#G%*NCE~Aq*w$ED+Y|g3K%2BO(``*pfs_Ksh zbSEDIfKXG_HxQckzLVZ}!uyU_?iu$M-Zw(;9~C?*d4yj^$HNne_@Jd*05OavZO1H{ zKNuQPA)+kfu+CIPJ!R!|)1s8hZp5ZFVHfgxE_YP>&a#hKn(k??2k^O_#{Ym)l(MtS$8+$f9bOx zs-yH-ZyoBm&-z*!Dh`$gykcV+$+>U(DUFrPFDIUr%zqTY?dZi;G-1e6;yxyhWyB4T zgkEouj-$NXCk?_s_t{D+p}yEEkrcdEoC+x~mB51qeU`)nyrs`l%&RU}vz(lM+TzO< zw`-bZy4+`LxuoiPU633&|BMSO?$@{Zh3EF!=lBB{@P0o7jxo6kHpnmzLo!T2T82p& zmSGAu68zSf5~W6D7>A4u6Off*5;n;&1)K4@0#{pP7>7|ACSa=!ldw&ODcDYsUG0!z z9Cpeu0lQ?FgfSVWV0Z14n(+vX09>7(iOva1bD47@r{oP<%J%#yn6dOl5!{>kT`U2( zf{_D%37}j#2wY?tdsar}EQ^*0J*L?$AuM z4l?4;_Mho1?*gTFt^6%CcvUzkZRXdhFOto(Vr5<=TvJ{3M1X8h=;6)tk42i;w4C-f zAg2LH4piXM%7TH+-sfHIX##kyI3!I>0AaIH1`mZdp;);|(kKN~;Ql|Gp1Af)-yfrY z?xkwIXC8F`%nn_NhP_VhEsoL*$1*s_u8a9}yZ$BO;)TT)&b70hJ8*WxcQ)hvsMJZb zSBUieSI_T@M#U4mrv``p7}7tdDgNojv#zg1oV{^*zw`C&rO5wwZ-3#|rE6J?CoWME}xWMJgtX5?gW21+nEFmM9^N1FoY literal 0 HcmV?d00001 diff --git a/tests/gen/memory_grow.11.wasm b/tests/gen/memory_grow.11.wasm new file mode 100644 index 0000000000000000000000000000000000000000..95394ad869f8fbc82774bae0cc5a06e553a7b06b GIT binary patch literal 33 ocmZQbEY4+QU|?WmVN76PU}j=uU}a`xVC3RpWMgn-aA4pD05i%0UH||9 literal 0 HcmV?d00001 diff --git a/tests/gen/memory_grow.12.wasm b/tests/gen/memory_grow.12.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5a42efe2c46cb1f083115f668dbc8dc3afe00afe GIT binary patch literal 34 pcmZQbEY4+QU|?WmWlUgTtYv0mWME}xWMJgtU}R%(WN={M1^_>00^I-r literal 0 HcmV?d00001 diff --git a/tests/gen/memory_grow.5.wasm b/tests/gen/memory_grow.5.wasm index 4381ce8b5ed8b8cf89dfbef727a690b15cfb7867..d5ef36b27f728dff549e85eac04f1f0c8b37c932 100644 GIT binary patch literal 53 zcmZQbEY4+QU|?WmWlUgTtY>CoWME}xWME_$WMa!r&CM^WWMW`RFUl`xVBq3lWMgn- IbYS2H0Kq*6UH||9 literal 32 lcmZQbEY4+QU|?WmVN76PU}j=uU}XmKx!4(585|g-xB)Q_0yF>s diff --git a/tests/gen/memory_grow.6.wasm b/tests/gen/memory_grow.6.wasm index d208854d0771d6460e9f0a36ee8918e28cb184b4..1acdfe3812587534fbf2d4709679062799080392 100644 GIT binary patch literal 32 mcmZQbEY4+QU|?WmWlUgTtY>CoWME|m3UIM8vM@L>a0382fdZKT literal 37 qcmZQbEY4+QU|?WmVN76PU}j=uU}XmKxp)}47#tax92^*=xVZs7*#gV} diff --git a/tests/gen/memory_grow.7.wasm b/tests/gen/memory_grow.7.wasm index 6e4e59f011ace9b72eb78d18917245918fa1a293..7ee8af77fb787a8240b6918ddb26c91c027bbf86 100644 GIT binary patch literal 37 rcmZQbEY4+QU|?WmWlUgTtY>CoWME|m3UF~VaxyqFFx5LSaB~9yN?HSO literal 37 qcmZQbEY4+QU|?WmVN76PU}j=uU}XmKxp)}47#tax9UK^>xVZs7-~!D6 diff --git a/tests/gen/memory_grow.8.wasm b/tests/gen/memory_grow.8.wasm index 66653f899500653aac3b0a7ef3f892cc4b41d72f..daf9140964cb97775e8e93a0ff316d1e3ffe8d7b 100644 GIT binary patch literal 37 rcmZQbEY4+QU|?WmWlUgTtY>CoWME|m3UF~VaxyqFFxNXUaB~9yN?-$V literal 39 rcmZQbEY4+QU|?WmVN76PU}j=uU}XmKx%e1)7#x9+#le9=iklk%MVtc@ diff --git a/tests/gen/memory_grow.9.wasm b/tests/gen/memory_grow.9.wasm index 98f783cca170f237fbd9a9b5eefa378f0d6efb00..a532dd624e2165d017462a33c06ece7faa4718a2 100644 GIT binary patch delta 21 acmY#YpCB&4z{ShR&EN=xEcFfy+}r>is{(=m delta 19 YcmY#aogmJ~$i>ab$>7WY1P%<`02ROiumAu6 diff --git a/tests/gen/memory_grow.json b/tests/gen/memory_grow.json index 1ab8191..52d67c5 100644 --- a/tests/gen/memory_grow.json +++ b/tests/gen/memory_grow.json @@ -89,8 +89,13 @@ {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, {"type": "assert_return", "line": 309, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_invalid", "line": 313, "filename": "memory_grow.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 322, "filename": "memory_grow.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 332, "filename": "memory_grow.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 342, "filename": "memory_grow.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 355, "filename": "memory_grow.9.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "module", "line": 312, "name": "$Mgm", "filename": "memory_grow.5.wasm"}, + {"type": "register", "line": 316, "name": "$Mgm", "as": "grown-memory"}, + {"type": "assert_return", "line": 317, "action": {"type": "invoke", "module": "$Mgm", "field": "grow", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_invalid", "line": 335, "filename": "memory_grow.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 344, "filename": "memory_grow.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 354, "filename": "memory_grow.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 364, "filename": "memory_grow.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 375, "filename": "memory_grow.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 385, "filename": "memory_grow.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 394, "filename": "memory_grow.12.wasm", "text": "type mismatch", "module_type": "binary"}]} diff --git a/tests/i32.wast b/tests/i32.wast index 32862c3..2e8ab70 100644 --- a/tests/i32.wast +++ b/tests/i32.wast @@ -974,3 +974,12 @@ (assert_invalid (module (func (result i32) (i32.lt_s (i64.const 0) (f32.const 0)))) "type mismatch") (assert_invalid (module (func (result i32) (i32.lt_u (i64.const 0) (f32.const 0)))) "type mismatch") (assert_invalid (module (func (result i32) (i32.ne (i64.const 0) (f32.const 0)))) "type mismatch") + +(assert_malformed + (module quote "(func (result i32) (i32.const nan:arithmetic))") + "unexpected token" +) +(assert_malformed + (module quote "(func (result i32) (i32.const nan:canonical))") + "unexpected token" +) diff --git a/tests/i64.wast b/tests/i64.wast index baeed0c..b662f3d 100644 --- a/tests/i64.wast +++ b/tests/i64.wast @@ -483,3 +483,12 @@ (assert_invalid (module (func (result i64) (i64.lt_s (i32.const 0) (f32.const 0)))) "type mismatch") (assert_invalid (module (func (result i64) (i64.lt_u (i32.const 0) (f32.const 0)))) "type mismatch") (assert_invalid (module (func (result i64) (i64.ne (i32.const 0) (f32.const 0)))) "type mismatch") + +(assert_malformed + (module quote "(func (result i64) (i64.const nan:arithmetic))") + "unexpected token" +) +(assert_malformed + (module quote "(func (result i64) (i64.const nan:canonical))") + "unexpected token" +) diff --git a/tests/memory_grow.wast b/tests/memory_grow.wast index 8a87c77..8023133 100644 --- a/tests/memory_grow.wast +++ b/tests/memory_grow.wast @@ -309,11 +309,33 @@ (assert_return (invoke "as-memory.grow-size") (i32.const 1)) +(module $Mgm + (memory (export "memory") 1) ;; initial size is 1 + (func (export "grow") (result i32) (memory.grow (i32.const 1))) +) +(register "grown-memory" $Mgm) +(assert_return (invoke $Mgm "grow") (i32.const 1)) ;; now size is 2 + +;; W2C2: TODO: test imported memory +;; (module $Mgim1 +;; ;; imported memory limits should match, because external memory size is 2 now +;; (memory (export "memory") (import "grown-memory" "memory") 2) +;; (func (export "grow") (result i32) (memory.grow (i32.const 1))) +;; ) +;; (register "grown-imported-memory" $Mgim1) +;; (assert_return (invoke $Mgim1 "grow") (i32.const 2)) ;; now size is 3 +;; (module $Mgim2 +;; ;; imported memory limits should match, because external memory size is 3 now +;; (import "grown-imported-memory" "memory" (memory 3)) +;; (func (export "size") (result i32) (memory.size)) +;; ) +;; (assert_return (invoke $Mgim2 "size") (i32.const 3)) + (assert_invalid (module (memory 0) - (func $type-size-empty - (memory.grow) (drop) + (func $type-size-empty-vs-i32 (result i32) + (memory.grow) ) ) "type mismatch" @@ -321,9 +343,9 @@ (assert_invalid (module (memory 0) - (func $type-size-empty-in-block + (func $type-size-empty-vs-i32-in-block (result i32) (i32.const 0) - (block (memory.grow) (drop)) + (block (result i32) (memory.grow)) ) ) "type mismatch" @@ -331,9 +353,9 @@ (assert_invalid (module (memory 0) - (func $type-size-empty-in-loop + (func $type-size-empty-vs-i32-in-loop (result i32) (i32.const 0) - (loop (memory.grow) (drop)) + (loop (result i32) (memory.grow)) ) ) "type mismatch" @@ -341,15 +363,39 @@ (assert_invalid (module (memory 0) - (func $type-size-empty-in-then + (func $type-size-empty-vs-i32-in-then (result i32) (i32.const 0) (i32.const 0) - (if (then (memory.grow) (drop))) + (if (result i32) (then (memory.grow))) ) ) "type mismatch" ) +(assert_invalid + (module + (memory 1) + (func $type-size-f32-vs-i32 (result i32) + (memory.grow (f32.const 0)) + ) + ) + "type mismatch" +) -;; Type check - -(assert_invalid (module (memory 1) (func (result i32) (memory.grow (f32.const 0)))) "type mismatch") +(assert_invalid + (module + (memory 1) + (func $type-result-i32-vs-empty + (memory.grow (i32.const 0)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (memory 1) + (func $type-result-i32-vs-f32 (result f32) + (memory.grow (i32.const 0)) + ) + ) + "type mismatch" +) From a27f25b03bb464a800872b238455c6b4839a39f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Sun, 13 Oct 2024 12:00:00 -0700 Subject: [PATCH 03/11] update tests --- tests/custom.wast | 130 ++++ tests/data.wast | 258 ++++++-- tests/elem.wast | 1152 +++++++++++++++++++++-------------- tests/gen/assert_custom.0.c | 11 + tests/gen/assert_custom.1.c | 11 + tests/gen/assert_custom.2.c | 11 + tests/gen/assert_data.10.c | 11 - tests/gen/assert_data.25.c | 11 + tests/gen/assert_data.26.c | 11 + tests/gen/assert_data.9.c | 11 - tests/gen/assert_elem.18.c | 11 + tests/gen/assert_elem.43.c | 16 - tests/gen/assert_elem.44.c | 16 - tests/gen/assert_elem.47.c | 16 + tests/gen/assert_elem.48.c | 16 + tests/gen/assert_elem.7.c | 10 - tests/gen/assert_elem.8.c | 10 + tests/gen/custom.0.wasm | Bin 0 -> 267 bytes tests/gen/custom.1.wasm | Bin 0 -> 390 bytes tests/gen/custom.10.wasm | Bin 0 -> 24 bytes tests/gen/custom.2.wasm | Bin 0 -> 101 bytes tests/gen/custom.3.wasm | Bin 0 -> 9 bytes tests/gen/custom.4.wasm | Bin 0 -> 10 bytes tests/gen/custom.5.wasm | Bin 0 -> 17 bytes tests/gen/custom.6.wasm | Bin 0 -> 46 bytes tests/gen/custom.7.wasm | Bin 0 -> 84 bytes tests/gen/custom.8.wasm | Bin 0 -> 99 bytes tests/gen/custom.9.wasm | Bin 0 -> 16 bytes tests/gen/custom.json | 13 + tests/gen/data.0.wasm | Bin 97 -> 179 bytes tests/gen/data.10.wasm | Bin 47 -> 30 bytes tests/gen/data.11.wasm | Bin 24 -> 30 bytes tests/gen/data.12.wasm | Bin 21 -> 47 bytes tests/gen/data.13.wasm | Bin 38 -> 24 bytes tests/gen/data.14.wasm | Bin 22 -> 21 bytes tests/gen/data.15.wasm | Bin 23 -> 38 bytes tests/gen/data.16.wasm | Bin 21 -> 22 bytes tests/gen/data.17.wasm | Bin 38 -> 23 bytes tests/gen/data.18.wasm | Bin 22 -> 21 bytes tests/gen/data.19.wasm | Bin 39 -> 38 bytes tests/gen/data.20.wasm | Bin 40 -> 22 bytes tests/gen/data.21.wasm | Bin 62 -> 39 bytes tests/gen/data.22.wasm | Bin 63 -> 40 bytes tests/gen/data.23.wasm | Bin 39 -> 62 bytes tests/gen/data.24.wasm | Bin 40 -> 63 bytes tests/gen/data.25.wasm | Bin 22 -> 39 bytes tests/gen/data.26.wasm | Bin 23 -> 40 bytes tests/gen/data.27.wasm | Bin 23 -> 22 bytes tests/gen/data.28.wasm | Bin 21 -> 23 bytes tests/gen/data.29.wasm | Bin 22 -> 23 bytes tests/gen/data.30.wasm | Bin 48 -> 21 bytes tests/gen/data.31.wasm | Bin 25 -> 22 bytes tests/gen/data.32.wasm | Bin 41 -> 48 bytes tests/gen/data.33.wasm | Bin 24 -> 25 bytes tests/gen/data.34.wasm | Bin 25 -> 41 bytes tests/gen/data.35.wasm | Bin 22 -> 24 bytes tests/gen/data.36.wasm | Bin 39 -> 25 bytes tests/gen/data.37.wasm | Bin 23 -> 22 bytes tests/gen/data.38.wasm | Bin 40 -> 39 bytes tests/gen/data.39.wasm | Bin 16 -> 23 bytes tests/gen/data.40.wasm | Bin 21 -> 40 bytes tests/gen/data.41.wasm | Bin 22 -> 16 bytes tests/gen/data.42.wasm | Bin 20 -> 22 bytes tests/gen/data.43.wasm | Bin 22 -> 16 bytes tests/gen/data.44.wasm | Bin 22 -> 17 bytes tests/gen/data.45.wasm | Bin 0 -> 84 bytes tests/gen/data.46.wasm | Bin 0 -> 79 bytes tests/gen/data.47.wasm | Bin 0 -> 21 bytes tests/gen/data.48.wasm | Bin 0 -> 19 bytes tests/gen/data.49.wasm | Bin 0 -> 23 bytes tests/gen/data.50.wasm | Bin 0 -> 45 bytes tests/gen/data.51.wasm | Bin 0 -> 45 bytes tests/gen/data.52.wasm | Bin 0 -> 22 bytes tests/gen/data.53.wasm | Bin 0 -> 20 bytes tests/gen/data.54.wasm | Bin 0 -> 22 bytes tests/gen/data.55.wasm | Bin 0 -> 22 bytes tests/gen/data.56.wasm | Bin 0 -> 34 bytes tests/gen/data.57.wasm | Bin 0 -> 21 bytes tests/gen/data.58.wasm | Bin 0 -> 43 bytes tests/gen/data.59.wasm | Bin 0 -> 47 bytes tests/gen/data.9.wasm | Bin 30 -> 30 bytes tests/gen/data.json | 103 ++-- tests/gen/elem.0.wasm | Bin 105 -> 54 bytes tests/gen/elem.1.wasm | Bin 39 -> 28 bytes tests/gen/elem.10.wasm | Bin 22 -> 55 bytes tests/gen/elem.11.wasm | Bin 38 -> 22 bytes tests/gen/elem.12.wasm | Bin 23 -> 38 bytes tests/gen/elem.13.wasm | Bin 22 -> 23 bytes tests/gen/elem.14.wasm | Bin 55 -> 22 bytes tests/gen/elem.15.wasm | Bin 56 -> 55 bytes tests/gen/elem.16.wasm | Bin 55 -> 56 bytes tests/gen/elem.17.wasm | Bin 56 -> 55 bytes tests/gen/elem.18.wasm | Bin 39 -> 56 bytes tests/gen/elem.19.wasm | Bin 40 -> 39 bytes tests/gen/elem.2.wasm | Bin 55 -> 39 bytes tests/gen/elem.20.wasm | Bin 40 -> 40 bytes tests/gen/elem.21.wasm | Bin 22 -> 40 bytes tests/gen/elem.22.wasm | Bin 39 -> 22 bytes tests/gen/elem.23.wasm | Bin 55 -> 39 bytes tests/gen/elem.24.wasm | Bin 40 -> 55 bytes tests/gen/elem.25.wasm | Bin 55 -> 40 bytes tests/gen/elem.26.wasm | Bin 39 -> 55 bytes tests/gen/elem.27.wasm | Bin 55 -> 39 bytes tests/gen/elem.28.wasm | Bin 39 -> 55 bytes tests/gen/elem.29.wasm | Bin 55 -> 39 bytes tests/gen/elem.3.wasm | Bin 63 -> 55 bytes tests/gen/elem.30.wasm | Bin 33 -> 55 bytes tests/gen/elem.31.wasm | Bin 22 -> 33 bytes tests/gen/elem.32.wasm | Bin 20 -> 22 bytes tests/gen/elem.33.wasm | Bin 24 -> 20 bytes tests/gen/elem.34.wasm | Bin 46 -> 24 bytes tests/gen/elem.35.wasm | Bin 46 -> 46 bytes tests/gen/elem.36.wasm | Bin 23 -> 46 bytes tests/gen/elem.37.wasm | Bin 21 -> 23 bytes tests/gen/elem.38.wasm | Bin 23 -> 21 bytes tests/gen/elem.39.wasm | Bin 23 -> 23 bytes tests/gen/elem.4.wasm | Bin 79 -> 63 bytes tests/gen/elem.40.wasm | Bin 22 -> 23 bytes tests/gen/elem.41.wasm | Bin 44 -> 35 bytes tests/gen/elem.42.wasm | Bin 48 -> 22 bytes tests/gen/elem.43.wasm | Bin 87 -> 44 bytes tests/gen/elem.44.wasm | Bin 111 -> 48 bytes tests/gen/elem.45.wasm | Bin 0 -> 25 bytes tests/gen/elem.46.wasm | Bin 0 -> 25 bytes tests/gen/elem.47.wasm | Bin 0 -> 87 bytes tests/gen/elem.48.wasm | Bin 0 -> 111 bytes tests/gen/elem.5.wasm | Bin 66 -> 79 bytes tests/gen/elem.7.wasm | Bin 95 -> 66 bytes tests/gen/elem.8.wasm | Bin 39 -> 95 bytes tests/gen/elem.9.wasm | Bin 55 -> 39 bytes tests/gen/elem.json | 100 +-- 131 files changed, 1283 insertions(+), 645 deletions(-) create mode 100644 tests/custom.wast mode change 100755 => 100644 tests/elem.wast create mode 100644 tests/gen/assert_custom.0.c create mode 100644 tests/gen/assert_custom.1.c create mode 100644 tests/gen/assert_custom.2.c delete mode 100644 tests/gen/assert_data.10.c create mode 100644 tests/gen/assert_data.25.c create mode 100644 tests/gen/assert_data.26.c delete mode 100644 tests/gen/assert_data.9.c create mode 100644 tests/gen/assert_elem.18.c delete mode 100644 tests/gen/assert_elem.43.c delete mode 100644 tests/gen/assert_elem.44.c create mode 100644 tests/gen/assert_elem.47.c create mode 100644 tests/gen/assert_elem.48.c create mode 100644 tests/gen/custom.0.wasm create mode 100644 tests/gen/custom.1.wasm create mode 100644 tests/gen/custom.10.wasm create mode 100644 tests/gen/custom.2.wasm create mode 100644 tests/gen/custom.3.wasm create mode 100644 tests/gen/custom.4.wasm create mode 100644 tests/gen/custom.5.wasm create mode 100644 tests/gen/custom.6.wasm create mode 100644 tests/gen/custom.7.wasm create mode 100644 tests/gen/custom.8.wasm create mode 100644 tests/gen/custom.9.wasm create mode 100644 tests/gen/custom.json create mode 100644 tests/gen/data.45.wasm create mode 100644 tests/gen/data.46.wasm create mode 100644 tests/gen/data.47.wasm create mode 100644 tests/gen/data.48.wasm create mode 100644 tests/gen/data.49.wasm create mode 100644 tests/gen/data.50.wasm create mode 100644 tests/gen/data.51.wasm create mode 100644 tests/gen/data.52.wasm create mode 100644 tests/gen/data.53.wasm create mode 100644 tests/gen/data.54.wasm create mode 100644 tests/gen/data.55.wasm create mode 100644 tests/gen/data.56.wasm create mode 100644 tests/gen/data.57.wasm create mode 100644 tests/gen/data.58.wasm create mode 100644 tests/gen/data.59.wasm create mode 100644 tests/gen/elem.45.wasm create mode 100644 tests/gen/elem.46.wasm create mode 100644 tests/gen/elem.47.wasm create mode 100644 tests/gen/elem.48.wasm diff --git a/tests/custom.wast b/tests/custom.wast new file mode 100644 index 0000000..12b0476 --- /dev/null +++ b/tests/custom.wast @@ -0,0 +1,130 @@ +(module binary + "\00asm" "\01\00\00\00" + "\00\24\10" "a custom section" "this is the payload" + "\00\20\10" "a custom section" "this is payload" + "\00\11\10" "a custom section" "" + "\00\10\00" "" "this is payload" + "\00\01\00" "" "" + "\00\24\10" "\00\00custom sectio\00" "this is the payload" + "\00\24\10" "\ef\bb\bfa custom sect" "this is the payload" + "\00\24\10" "a custom sect\e2\8c\a3" "this is the payload" + "\00\1f\16" "module within a module" "\00asm" "\01\00\00\00" +) + +(module binary + "\00asm" "\01\00\00\00" + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\01\01\00" ;; type section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\02\01\00" ;; import section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\03\01\00" ;; function section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\04\01\00" ;; table section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\05\01\00" ;; memory section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\06\01\00" ;; global section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\07\01\00" ;; export section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\09\01\00" ;; element section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\0a\01\00" ;; code section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\0b\01\00" ;; data section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" +) + +(module binary + "\00asm" "\01\00\00\00" + "\01\07\01\60\02\7f\7f\01\7f" ;; type section + "\00\1a\06" "custom" "this is the payload" ;; custom section + "\03\02\01\00" ;; function section + "\07\0a\01\06\61\64\64\54\77\6f\00\00" ;; export section + "\0a\09\01\07\00\20\00\20\01\6a\0b" ;; code section + "\00\1b\07" "custom2" "this is the payload" ;; custom section +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" + ) + "unexpected end" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00\00" + ) + "unexpected end" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00\00\00\05\01\00\07\00\00" + ) + "unexpected end" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00\26\10" "a custom section" "this is the payload" + ) + "length out of bounds" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00\25\10" "a custom section" "this is the payload" + "\00\24\10" "a custom section" "this is the payload" + ) + "malformed section id" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\07\01\60\02\7f\7f\01\7f" ;; type section + "\00\25\10" "a custom section" "this is the payload" ;; wrong length! + "\03\02\01\00" ;; function section + "\0a\09\01\07\00\20\00\20\01\6a\0b" ;; code section + "\00\1b\07" "custom2" "this is the payload" ;; custom section + ) + "function and code section have inconsistent lengths" +) + +;; Test concatenated modules. +(assert_malformed + (module binary + "\00asm\01\00\00\00" + "\00asm\01\00\00\00" + ) + "length out of bounds" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01\00\01" ;; memory section + "\0c\01\02" ;; data count section (2 segments) + "\0b\06\01\00\41\00\0b\00" ;; data section (1 segment) + ) + "data count and data section have inconsistent lengths" +) diff --git a/tests/data.wast b/tests/data.wast index 32d05f5..0838b9f 100644 --- a/tests/data.wast +++ b/tests/data.wast @@ -8,14 +8,26 @@ (data (i32.const 1) "a" "" "bcd") (data (offset (i32.const 0))) (data (offset (i32.const 0)) "" "a" "bc" "") - (data 0 (i32.const 0)) - (data 0x0 (i32.const 1) "a" "" "bcd") - (data 0x000 (offset (i32.const 0))) - (data 0 (offset (i32.const 0)) "" "a" "bc" "") - (data $m (i32.const 0)) - (data $m (i32.const 1) "a" "" "bcd") - (data $m (offset (i32.const 0))) - (data $m (offset (i32.const 0)) "" "a" "bc" "") + (data (memory 0) (i32.const 0)) + (data (memory 0x0) (i32.const 1) "a" "" "bcd") + (data (memory 0x000) (offset (i32.const 0))) + (data (memory 0) (offset (i32.const 0)) "" "a" "bc" "") + (data (memory $m) (i32.const 0)) + (data (memory $m) (i32.const 1) "a" "" "bcd") + (data (memory $m) (offset (i32.const 0))) + (data (memory $m) (offset (i32.const 0)) "" "a" "bc" "") + (data $d1 (i32.const 0)) + (data $d2 (i32.const 1) "a" "" "bcd") + (data $d3 (offset (i32.const 0))) + (data $d4 (offset (i32.const 0)) "" "a" "bc" "") + (data $d5 (memory 0) (i32.const 0)) + (data $d6 (memory 0x0) (i32.const 1) "a" "" "bcd") + (data $d7 (memory 0x000) (offset (i32.const 0))) + (data $d8 (memory 0) (offset (i32.const 0)) "" "a" "bc" "") + (data $d9 (memory $m) (i32.const 0)) + (data $d10 (memory $m) (i32.const 1) "a" "" "bcd") + (data $d11 (memory $m) (offset (i32.const 0))) + (data $d12 (memory $m) (offset (i32.const 0)) "" "a" "bc" "") ) ;; Basic use @@ -69,9 +81,15 @@ (data (global.get $g) "a") ) -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (module (memory 1) (data (global.get 0) "a") (global i32 (i32.const 0))) -;; (module (memory 1) (data (global.get $g) "a") (global $g i32 (i32.const 0))) +(assert_invalid + (module (memory 1) (global i32 (i32.const 0)) (data (global.get 0) "a")) + "unknown global" +) +(assert_invalid + (module (memory 1) (global $g i32 (i32.const 0)) (data (global.get $g) "a")) + "unknown global" +) + ;; Corner cases @@ -158,44 +176,42 @@ ;; Invalid bounds for data -(assert_unlinkable +(assert_trap (module (memory 0) (data (i32.const 0) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 0 0) (data (i32.const 0) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 0 1) (data (i32.const 0) "a") ) - "data segment does not fit" + "out of bounds memory access" ) - -(assert_unlinkable +(assert_trap (module (memory 0) (data (i32.const 1)) ) - "data segment does not fit" + "out of bounds memory access" ) - -(assert_unlinkable +(assert_trap (module (memory 0 1) (data (i32.const 1)) ) - "data segment does not fit" + "out of bounds memory access" ) ;; This seems to cause a time-out on Travis. @@ -204,77 +220,77 @@ (memory 0x10000) (data (i32.const 0xffffffff) "ab") ) - "" ;; either out of memory or segment does not fit + "" ;; either out of memory or out of bounds ;) -(assert_unlinkable +(assert_trap (module (global (import "spectest" "global_i32") i32) (memory 0) (data (global.get 0) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 1 2) (data (i32.const 0x1_0000) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (import "spectest" "memory" (memory 1)) (data (i32.const 0x1_0000) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 2) (data (i32.const 0x2_0000) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 2 3) (data (i32.const 0x2_0000) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 1) (data (i32.const -1) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (import "spectest" "memory" (memory 1)) (data (i32.const -1) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 2) (data (i32.const -100) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (import "spectest" "memory" (memory 1)) (data (i32.const -100) "a") ) - "data segment does not fit" + "out of bounds memory access" ) ;; Data without memory @@ -283,9 +299,85 @@ (module (data (i32.const 0) "") ) + "unknown memory" +) + +;; Data segment with memory index 1 (only memory 0 available) +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\00" ;; memory 0 + "\0b\07\01" ;; data section + "\02\01\41\00\0b" ;; active data segment 0 for memory 1 + "\00" ;; empty vec(byte) + ) + "unknown memory 1" +) + +;; Data segment with memory index 0 (no memory section) +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\0b\06\01" ;; data section + "\00\41\00\0b" ;; active data segment 0 for memory 0 + "\00" ;; empty vec(byte) + ) "unknown memory 0" ) +;; Data segment with memory index 1 (no memory section) +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\0b\07\01" ;; data section + "\02\01\41\00\0b" ;; active data segment 0 for memory 1 + "\00" ;; empty vec(byte) + ) + "unknown memory 1" +) + +;; Data segment with memory index 1 and vec(byte) as above, +;; only memory 0 available. +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\00" ;; memory 0 + "\0b\45\01" ;; data section + "\02" ;; active segment + "\01" ;; memory index + "\41\00\0b" ;; offset constant expression + "\3e" ;; vec(byte) length + "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f" + "\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f" + "\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f" + "\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d" + ) + "unknown memory 1" +) + +;; Data segment with memory index 1 and specially crafted vec(byte) after. +;; This is to detect incorrect validation where memory index is interpreted +;; as a flag followed by "\41" interpreted as the size of vec(byte) +;; with the expected number of bytes following. +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\0b\45\01" ;; data section + "\02" ;; active segment + "\01" ;; memory index + "\41\00\0b" ;; offset constant expression + "\3e" ;; vec(byte) length + "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f" + "\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f" + "\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f" + "\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d" + ) + "unknown memory 1" +) + + ;; Invalid offsets (assert_invalid @@ -296,6 +388,49 @@ "type mismatch" ) +;; W2C2: No support for reference types +;; (assert_invalid +;; (module +;; (memory 1) +;; (data (ref.null func)) +;; ) +;; "type mismatch" +;; ) + +(assert_invalid + (module + (memory 1) + (data (offset (;empty instruction sequence;))) + ) + "type mismatch" +) + +(assert_invalid + (module + (memory 1) + (data (offset (i32.const 0) (i32.const 0))) + ) + "type mismatch" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (memory 1) + (data (offset (global.get 0) (global.get 0))) + ) + "type mismatch" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (memory 1) + (data (offset (global.get 0) (i32.const 0))) + ) + "type mismatch" +) + (assert_invalid (module (memory 1) @@ -328,8 +463,37 @@ "constant expression required" ) -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (assert_invalid -;; (module (memory 1) (data (global.get $g)) (global $g (mut i32) (i32.const 0))) -;; "constant expression required" -;; ) +(assert_invalid + (module + (global $g (import "test" "g") (mut i32)) + (memory 1) + (data (global.get $g)) + ) + "constant expression required" +) + +(assert_invalid + (module + (memory 1) + (data (global.get 0)) + ) + "unknown global 0" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (memory 1) + (data (global.get 1)) + ) + "unknown global 1" +) + +(assert_invalid + (module + (global (import "test" "global-mut-i32") (mut i32)) + (memory 1) + (data (global.get 0)) + ) + "constant expression required" +) diff --git a/tests/elem.wast b/tests/elem.wast old mode 100755 new mode 100644 index d2b2c23..a5f9cdc --- a/tests/elem.wast +++ b/tests/elem.wast @@ -1,442 +1,710 @@ -;; Test the element section - -;; Syntax -(module - (table $t 10 funcref) - (func $f) - (elem (i32.const 0)) - (elem (i32.const 0) $f $f) - (elem (offset (i32.const 0))) - (elem (offset (i32.const 0)) $f $f) - (elem 0 (i32.const 0)) - (elem 0x0 (i32.const 0) $f $f) - (elem 0x000 (offset (i32.const 0))) - (elem 0 (offset (i32.const 0)) $f $f) - (elem $t (i32.const 0)) - (elem $t (i32.const 0) $f $f) - (elem $t (offset (i32.const 0))) - (elem $t (offset (i32.const 0)) $f $f) -) - -;; Basic use - -(module - (table 10 funcref) - (func $f) - (elem (i32.const 0) $f) -) -(module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (table 10 funcref) - (func $f) - (elem (i32.const 0) $f) - (elem (i32.const 3) $f) - (elem (i32.const 7) $f) - (elem (i32.const 5) $f) - (elem (i32.const 3) $f) -) -(module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 9) $f) - (elem (i32.const 3) $f) - (elem (i32.const 7) $f) - (elem (i32.const 3) $f) - (elem (i32.const 5) $f) -) - -(module - (global (import "spectest" "global_i32") i32) - (table 1000 funcref) - (func $f) - (elem (global.get 0) $f) -) - -(module - (global $g (import "spectest" "global_i32") i32) - (table 1000 funcref) - (func $f) - (elem (global.get $g) $f) -) - -(module - (type $out-i32 (func (result i32))) - (table 10 funcref) - (elem (i32.const 7) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-7") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 7)) - ) - (func (export "call-9") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-7") (i32.const 65)) -(assert_return (invoke "call-9") (i32.const 66)) - -;; Corner cases - -(module - (table 10 funcref) - (func $f) - (elem (i32.const 9) $f) -) -(module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 9) $f) -) - -(module - (table 0 funcref) - (elem (i32.const 0)) -) -(module - (import "spectest" "table" (table 0 funcref)) - (elem (i32.const 0)) -) - -(module - (table 0 0 funcref) - (elem (i32.const 0)) -) - -(module - (table 20 funcref) - (elem (i32.const 20)) -) - -(module - (import "spectest" "table" (table 0 funcref)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (import "spectest" "table" (table 0 100 funcref)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (import "spectest" "table" (table 0 funcref)) - (func $f) - (elem (i32.const 1) $f) -) - -(module - (import "spectest" "table" (table 0 30 funcref)) - (func $f) - (elem (i32.const 1) $f) -) - -;; Invalid bounds for elements - -(assert_unlinkable - (module - (table 0 funcref) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 0 funcref) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 1 funcref) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 funcref) - (elem (i32.const 1)) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 funcref) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 20 funcref) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 funcref) - (func $f) - (elem (i32.const -1) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const -1) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 funcref) - (func $f) - (elem (i32.const -10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const -10) $f) - ) - "elements segment does not fit" -) - -;; Element without table - -(assert_invalid - (module - (func $f) - (elem (i32.const 0) $f) - ) - "unknown table" -) - -;; Invalid offsets - -(assert_invalid - (module - (table 1 funcref) - (elem (i64.const 0)) - ) - "type mismatch" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (offset (;empty instruction sequence;))) - ) - "type mismatch" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (offset (i32.const 0) (i32.const 0))) - ) - "type mismatch" -) - -(assert_invalid - (module - (global (import "test" "global-i32") i32) - (table 1 funcref) - (elem (offset (global.get 0) (global.get 0))) - ) - "type mismatch" -) - -(assert_invalid - (module - (global (import "test" "global-i32") i32) - (table 1 funcref) - (elem (offset (global.get 0) (i32.const 0))) - ) - "type mismatch" -) - - -(assert_invalid - (module - (table 1 funcref) - (elem (i32.ctz (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (nop)) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (offset (nop) (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (offset (i32.const 0) (nop))) - ) - "constant expression required" -) - -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (assert_invalid -;; (module (memory 1) (data (global.get $g)) (global $g (mut i32) (i32.const 0))) -;; "constant expression required" -;; ) - -(assert_invalid - (module - (table 1 funcref) - (elem (global.get 0)) - ) - "unknown global 0" -) - -(assert_invalid - (module - (global (import "test" "global-i32") i32) - (table 1 funcref) - (elem (global.get 1)) - ) - "unknown global 1" -) - -(assert_invalid - (module - (global (import "test" "global-mut-i32") (mut i32)) - (table 1 funcref) - (elem (global.get 0)) - ) - "constant expression required" -) - -;; Two elements target the same slot - -(module - (type $out-i32 (func (result i32))) - (table 10 funcref) - (elem (i32.const 9) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-overwritten") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-overwritten") (i32.const 66)) - -(module - (type $out-i32 (func (result i32))) - (import "spectest" "table" (table 10 funcref)) - (elem (i32.const 9) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-overwritten-element") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-overwritten-element") (i32.const 66)) - -;; ;; Element sections across multiple modules change the same table -;; -;; (module $module1 -;; (type $out-i32 (func (result i32))) -;; (table (export "shared-table") 10 funcref) -;; (elem (i32.const 8) $const-i32-a) -;; (elem (i32.const 9) $const-i32-b) -;; (func $const-i32-a (type $out-i32) (i32.const 65)) -;; (func $const-i32-b (type $out-i32) (i32.const 66)) -;; (func (export "call-7") (type $out-i32) -;; (call_indirect (type $out-i32) (i32.const 7)) -;; ) -;; (func (export "call-8") (type $out-i32) -;; (call_indirect (type $out-i32) (i32.const 8)) -;; ) -;; (func (export "call-9") (type $out-i32) -;; (call_indirect (type $out-i32) (i32.const 9)) -;; ) -;; ) -;; -;; (register "module1" $module1) -;; -;; (assert_trap (invoke $module1 "call-7") "uninitialized element") -;; (assert_return (invoke $module1 "call-8") (i32.const 65)) -;; (assert_return (invoke $module1 "call-9") (i32.const 66)) -;; -;; (module $module2 -;; (type $out-i32 (func (result i32))) -;; (import "module1" "shared-table" (table 10 funcref)) -;; (elem (i32.const 7) $const-i32-c) -;; (elem (i32.const 8) $const-i32-d) -;; (func $const-i32-c (type $out-i32) (i32.const 67)) -;; (func $const-i32-d (type $out-i32) (i32.const 68)) -;; ) -;; -;; (assert_return (invoke $module1 "call-7") (i32.const 67)) -;; (assert_return (invoke $module1 "call-8") (i32.const 68)) -;; (assert_return (invoke $module1 "call-9") (i32.const 66)) -;; -;; (module $module3 -;; (type $out-i32 (func (result i32))) -;; (import "module1" "shared-table" (table 10 funcref)) -;; (elem (i32.const 8) $const-i32-e) -;; (elem (i32.const 9) $const-i32-f) -;; (func $const-i32-e (type $out-i32) (i32.const 69)) -;; (func $const-i32-f (type $out-i32) (i32.const 70)) -;; ) -;; -;; (assert_return (invoke $module1 "call-7") (i32.const 67)) -;; (assert_return (invoke $module1 "call-8") (i32.const 69)) -;; (assert_return (invoke $module1 "call-9") (i32.const 70)) +;; Test the element section + +;; Syntax +(module + (table $t 10 funcref) + (func $f) + (func $g) + + ;; Passive + ;; W2C2: No support for function references + ;; (elem funcref) + ;; (elem funcref (ref.func $f) (item ref.func $f) (item (ref.null func)) (ref.func $g)) + ;; (elem func) + ;; (elem func $f $f $g $g) + + ;; W2C2: No support for function references + ;; (elem $p1 funcref) + ;; (elem $p2 funcref (ref.func $f) (ref.func $f) (ref.null func) (ref.func $g)) + ;; (elem $p3 func) + ;; (elem $p4 func $f $f $g $g) + + ;; Active + ;; W2C2: No support for multiple tables + ;; (elem (table $t) (i32.const 0) funcref) + ;; (elem (table $t) (i32.const 0) funcref (ref.func $f) (ref.null func)) + ;; (elem (table $t) (i32.const 0) func) + ;; (elem (table $t) (i32.const 0) func $f $g) + ;; (elem (table $t) (offset (i32.const 0)) funcref) + ;; (elem (table $t) (offset (i32.const 0)) func $f $g) + ;; (elem (table 0) (i32.const 0) func) + ;; (elem (table 0x0) (i32.const 0) func $f $f) + ;; (elem (table 0x000) (offset (i32.const 0)) func) + ;; (elem (table 0) (offset (i32.const 0)) func $f $f) + ;; (elem (table $t) (i32.const 0) func) + ;; (elem (table $t) (i32.const 0) func $f $f) + ;; (elem (table $t) (offset (i32.const 0)) func) + ;; (elem (table $t) (offset (i32.const 0)) func $f $f) + (elem (offset (i32.const 0))) + ;; W2C2: No support for function references + ;; (elem (offset (i32.const 0)) funcref (ref.func $f) (ref.null func)) + ;; (elem (offset (i32.const 0)) func $f $f) + (elem (offset (i32.const 0)) $f $f) + (elem (i32.const 0)) + ;; W2C2: No support for function references + ;; (elem (i32.const 0) funcref (ref.func $f) (ref.null func)) + ;; (elem (i32.const 0) func $f $f) + ;; (elem (i32.const 0) $f $f) + ;; (elem (i32.const 0) funcref (item (ref.func $f)) (item (ref.null func))) + + ;; W2C2: No support for multiple tables + ;; (elem $a1 (table $t) (i32.const 0) funcref) + ;; (elem $a2 (table $t) (i32.const 0) funcref (ref.func $f) (ref.null func)) + ;; (elem $a3 (table $t) (i32.const 0) func) + ;; (elem $a4 (table $t) (i32.const 0) func $f $g) + ;; (elem $a9 (table $t) (offset (i32.const 0)) funcref) + ;; (elem $a10 (table $t) (offset (i32.const 0)) func $f $g) + ;; (elem $a11 (table 0) (i32.const 0) func) + ;; (elem $a12 (table 0x0) (i32.const 0) func $f $f) + ;; (elem $a13 (table 0x000) (offset (i32.const 0)) func) + ;; (elem $a14 (table 0) (offset (i32.const 0)) func $f $f) + ;; (elem $a15 (table $t) (i32.const 0) func) + ;; (elem $a16 (table $t) (i32.const 0) func $f $f) + ;; (elem $a17 (table $t) (offset (i32.const 0)) func) + ;; (elem $a18 (table $t) (offset (i32.const 0)) func $f $f) + ;; (elem $a19 (offset (i32.const 0))) + ;; W2C2: No support for function references + ;; (elem $a20 (offset (i32.const 0)) funcref (ref.func $f) (ref.null func)) + ;; (elem $a21 (offset (i32.const 0)) func $f $f) + ;; (elem $a22 (offset (i32.const 0)) $f $f) + ;; (elem $a23 (i32.const 0)) + ;; W2C2: No support for function references + ;; (elem $a24 (i32.const 0) funcref (ref.func $f) (ref.null func)) + ;; (elem $a25 (i32.const 0) func $f $f) + ;; (elem $a26 (i32.const 0) $f $f) + + ;; Declarative + ;; W2C2: No support for declarative + ;; (elem declare funcref) + ;; (elem declare funcref (ref.func $f) (ref.func $f) (ref.null func) (ref.func $g)) + ;; (elem declare func) + ;; (elem declare func $f $f $g $g) + ;; + ;; (elem $d1 declare funcref) + ;; (elem $d2 declare funcref (ref.func $f) (ref.func $f) (ref.null func) (ref.func $g)) + ;; (elem $d3 declare func) + ;; (elem $d4 declare func $f $f $g $g) +) + +(module + (func $f) + (func $g) + + ;; W2C2: No support for function references + ;; (table $t funcref (elem (ref.func $f) (ref.null func) (ref.func $g))) +) + + +;; Basic use + +(module + (table 10 funcref) + (func $f) + (elem (i32.const 0) $f) +) +(module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 0) $f) +) + +(module + (table 10 funcref) + (func $f) + (elem (i32.const 0) $f) + (elem (i32.const 3) $f) + (elem (i32.const 7) $f) + (elem (i32.const 5) $f) + (elem (i32.const 3) $f) +) +(module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 9) $f) + (elem (i32.const 3) $f) + (elem (i32.const 7) $f) + (elem (i32.const 3) $f) + (elem (i32.const 5) $f) +) + +(module + (global (import "spectest" "global_i32") i32) + (table 1000 funcref) + (func $f) + (elem (global.get 0) $f) +) + +(module + (global $g (import "spectest" "global_i32") i32) + (table 1000 funcref) + (func $f) + (elem (global.get $g) $f) +) + +(module + (type $out-i32 (func (result i32))) + (table 10 funcref) + (elem (i32.const 7) $const-i32-a) + (elem (i32.const 9) $const-i32-b) + (func $const-i32-a (type $out-i32) (i32.const 65)) + (func $const-i32-b (type $out-i32) (i32.const 66)) + (func (export "call-7") (type $out-i32) + (call_indirect (type $out-i32) (i32.const 7)) + ) + (func (export "call-9") (type $out-i32) + (call_indirect (type $out-i32) (i32.const 9)) + ) +) +(assert_return (invoke "call-7") (i32.const 65)) +(assert_return (invoke "call-9") (i32.const 66)) + +;; W2C2: No support for function references +;; ;; Same as the above, but use ref.null to ensure the elements use exprs. +;; ;; Note: some tools like wast2json avoid using exprs when possible. +;; (module +;; (type $out-i32 (func (result i32))) +;; (table 11 funcref) +;; (elem (i32.const 6) funcref (ref.null func) (ref.func $const-i32-a)) +;; (elem (i32.const 9) funcref (ref.func $const-i32-b) (ref.null func)) +;; (func $const-i32-a (type $out-i32) (i32.const 65)) +;; (func $const-i32-b (type $out-i32) (i32.const 66)) +;; (func (export "call-7") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 7)) +;; ) +;; (func (export "call-9") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 9)) +;; ) +;; ) +;; (assert_return (invoke "call-7") (i32.const 65)) +;; (assert_return (invoke "call-9") (i32.const 66)) +;; +;; (assert_invalid +;; (module (table 1 funcref) (global i32 (i32.const 0)) (elem (global.get 0) $f) (func $f)) +;; "unknown global" +;; ) +;; (assert_invalid +;; (module (table 1 funcref) (global $g i32 (i32.const 0)) (elem (global.get $g) $f) (func $f)) +;; "unknown global" +;; ) + + +;; Corner cases + +(module + (table 10 funcref) + (func $f) + (elem (i32.const 9) $f) +) +(module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 9) $f) +) + +(module + (table 0 funcref) + (elem (i32.const 0)) +) +(module + (import "spectest" "table" (table 0 funcref)) + (elem (i32.const 0)) +) + +(module + (table 0 0 funcref) + (elem (i32.const 0)) +) + +(module + (table 20 funcref) + (elem (i32.const 20)) +) + +(module + (import "spectest" "table" (table 0 funcref)) + (func $f) + (elem (i32.const 0) $f) +) + +(module + (import "spectest" "table" (table 0 100 funcref)) + (func $f) + (elem (i32.const 0) $f) +) + +(module + (import "spectest" "table" (table 0 funcref)) + (func $f) + (elem (i32.const 1) $f) +) + +(module + (import "spectest" "table" (table 0 30 funcref)) + (func $f) + (elem (i32.const 1) $f) +) + +;; Invalid bounds for elements + +(assert_trap + (module + (table 0 funcref) + (func $f) + (elem (i32.const 0) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 0 0 funcref) + (func $f) + (elem (i32.const 0) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 0 1 funcref) + (func $f) + (elem (i32.const 0) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 0 funcref) + (elem (i32.const 1)) + ) + "out of bounds table access" +) +(assert_trap + (module + (table 10 funcref) + (func $f) + (elem (i32.const 10) $f) + ) + "out of bounds table access" +) +(assert_trap + (module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 10) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 10 20 funcref) + (func $f) + (elem (i32.const 10) $f) + ) + "out of bounds table access" +) +(assert_trap + (module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 10) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 10 funcref) + (func $f) + (elem (i32.const -1) $f) + ) + "out of bounds table access" +) +(assert_trap + (module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const -1) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 10 funcref) + (func $f) + (elem (i32.const -10) $f) + ) + "out of bounds table access" +) +(assert_trap + (module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const -10) $f) + ) + "out of bounds table access" +) + +;; Implicitly dropped elements + +;; W2C2: No support for function references +;; (module +;; (table 10 funcref) +;; (elem $e (i32.const 0) func $f) +;; (func $f) +;; (func (export "init") +;; (table.init $e (i32.const 0) (i32.const 0) (i32.const 1)) +;; ) +;; ) +;; (assert_trap (invoke "init") "out of bounds table access") + +;; W2C2: No support for declarative +;; (module +;; (table 10 funcref) +;; (elem $e declare func $f) +;; (func $f) +;; (func (export "init") +;; (table.init $e (i32.const 0) (i32.const 0) (i32.const 1)) +;; ) +;; ) +;; (assert_trap (invoke "init") "out of bounds table access") + +;; Element without table + +(assert_invalid + (module + (func $f) + (elem (i32.const 0) $f) + ) + "unknown table" +) + +;; Invalid offsets + +(assert_invalid + (module + (table 1 funcref) + (elem (i64.const 0)) + ) + "type mismatch" +) + +;; W2C2: No support for function references +;; (assert_invalid +;; (module +;; (table 1 funcref) +;; (elem (ref.null func)) +;; ) +;; "type mismatch" +;; ) + +(assert_invalid + (module + (table 1 funcref) + (elem (offset (;empty instruction sequence;))) + ) + "type mismatch" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (offset (i32.const 0) (i32.const 0))) + ) + "type mismatch" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (table 1 funcref) + (elem (offset (global.get 0) (global.get 0))) + ) + "type mismatch" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (table 1 funcref) + (elem (offset (global.get 0) (i32.const 0))) + ) + "type mismatch" +) + + +(assert_invalid + (module + (table 1 funcref) + (elem (i32.ctz (i32.const 0))) + ) + "constant expression required" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (nop)) + ) + "constant expression required" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (offset (nop) (i32.const 0))) + ) + "constant expression required" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (offset (i32.const 0) (nop))) + ) + "constant expression required" +) + +(assert_invalid + (module + (global $g (import "test" "g") (mut i32)) + (table 1 funcref) + (elem (global.get $g)) + ) + "constant expression required" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (global.get 0)) + ) + "unknown global 0" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (table 1 funcref) + (elem (global.get 1)) + ) + "unknown global 1" +) + +(assert_invalid + (module + (global (import "test" "global-mut-i32") (mut i32)) + (table 1 funcref) + (elem (global.get 0)) + ) + "constant expression required" +) + +;; Invalid elements + +;; W2C2: No support for function references +;; (assert_invalid +;; (module +;; (table 1 funcref) +;; (elem (i32.const 0) funcref (ref.null extern)) +;; ) +;; "type mismatch" +;; ) +;; +;; (assert_invalid +;; (module +;; (table 1 funcref) +;; (elem (i32.const 0) funcref (item (ref.null func) (ref.null func))) +;; ) +;; "type mismatch" +;; ) + +(assert_invalid + (module + (table 1 funcref) + (elem (i32.const 0) funcref (i32.const 0)) + ) + "type mismatch" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (i32.const 0) funcref (item (i32.const 0))) + ) + "type mismatch" +) + +;; W2C2: No support for function references +;; (assert_invalid +;; (module +;; (table 1 funcref) +;; (elem (i32.const 0) funcref (item (call $f))) +;; (func $f (result funcref) (ref.null func)) +;; ) +;; "constant expression required" +;; ) + +;; Two elements target the same slot + +(module + (type $out-i32 (func (result i32))) + (table 10 funcref) + (elem (i32.const 9) $const-i32-a) + (elem (i32.const 9) $const-i32-b) + (func $const-i32-a (type $out-i32) (i32.const 65)) + (func $const-i32-b (type $out-i32) (i32.const 66)) + (func (export "call-overwritten") (type $out-i32) + (call_indirect (type $out-i32) (i32.const 9)) + ) +) +(assert_return (invoke "call-overwritten") (i32.const 66)) + +(module + (type $out-i32 (func (result i32))) + (import "spectest" "table" (table 10 funcref)) + (elem (i32.const 9) $const-i32-a) + (elem (i32.const 9) $const-i32-b) + (func $const-i32-a (type $out-i32) (i32.const 65)) + (func $const-i32-b (type $out-i32) (i32.const 66)) + (func (export "call-overwritten-element") (type $out-i32) + (call_indirect (type $out-i32) (i32.const 9)) + ) +) +(assert_return (invoke "call-overwritten-element") (i32.const 66)) + +;; W2C2: No support for registering modules +;; ;; Element sections across multiple modules change the same table +;; +;; (module $module1 +;; (type $out-i32 (func (result i32))) +;; (table (export "shared-table") 10 funcref) +;; (elem (i32.const 8) $const-i32-a) +;; (elem (i32.const 9) $const-i32-b) +;; (func $const-i32-a (type $out-i32) (i32.const 65)) +;; (func $const-i32-b (type $out-i32) (i32.const 66)) +;; (func (export "call-7") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 7)) +;; ) +;; (func (export "call-8") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 8)) +;; ) +;; (func (export "call-9") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 9)) +;; ) +;; ) +;; +;; (register "module1" $module1) +;; +;; (assert_trap (invoke $module1 "call-7") "uninitialized element") +;; (assert_return (invoke $module1 "call-8") (i32.const 65)) +;; (assert_return (invoke $module1 "call-9") (i32.const 66)) +;; +;; (module $module2 +;; (type $out-i32 (func (result i32))) +;; (import "module1" "shared-table" (table 10 funcref)) +;; (elem (i32.const 7) $const-i32-c) +;; (elem (i32.const 8) $const-i32-d) +;; (func $const-i32-c (type $out-i32) (i32.const 67)) +;; (func $const-i32-d (type $out-i32) (i32.const 68)) +;; ) +;; +;; (assert_return (invoke $module1 "call-7") (i32.const 67)) +;; (assert_return (invoke $module1 "call-8") (i32.const 68)) +;; (assert_return (invoke $module1 "call-9") (i32.const 66)) +;; +;; (module $module3 +;; (type $out-i32 (func (result i32))) +;; (import "module1" "shared-table" (table 10 funcref)) +;; (elem (i32.const 8) $const-i32-e) +;; (elem (i32.const 9) $const-i32-f) +;; (func $const-i32-e (type $out-i32) (i32.const 69)) +;; (func $const-i32-f (type $out-i32) (i32.const 70)) +;; ) +;; +;; (assert_return (invoke $module1 "call-7") (i32.const 67)) +;; (assert_return (invoke $module1 "call-8") (i32.const 69)) +;; (assert_return (invoke $module1 "call-9") (i32.const 70)) + +;; Element segments must match element type of table + +;; W2C2: No support for external references +;; (assert_invalid +;; (module (func $f) (table 1 externref) (elem (i32.const 0) $f)) +;; "type mismatch" +;; ) +;; +;; (assert_invalid +;; (module (table 1 funcref) (elem (i32.const 0) externref (ref.null extern))) +;; "type mismatch" +;; ) +;; +;; (assert_invalid +;; (module +;; (func $f) +;; (table $t 1 externref) +;; (elem $e funcref (ref.func $f)) +;; (func (table.init $t $e (i32.const 0) (i32.const 0) (i32.const 1)))) +;; "type mismatch" +;; ) +;; +;; (assert_invalid +;; (module +;; (table $t 1 funcref) +;; (elem $e externref (ref.null extern)) +;; (func (table.init $t $e (i32.const 0) (i32.const 0) (i32.const 1)))) +;; "type mismatch" +;; ) +;; +;; ;; Initializing a table with an externref-type element segment +;; +;; (module $m +;; (table $t (export "table") 2 externref) +;; (func (export "get") (param $i i32) (result externref) +;; (table.get $t (local.get $i))) +;; (func (export "set") (param $i i32) (param $x externref) +;; (table.set $t (local.get $i) (local.get $x)))) +;; +;; (register "exporter" $m) +;; +;; (assert_return (invoke $m "get" (i32.const 0)) (ref.null extern)) +;; (assert_return (invoke $m "get" (i32.const 1)) (ref.null extern)) +;; +;; (assert_return (invoke $m "set" (i32.const 0) (ref.extern 42))) +;; (assert_return (invoke $m "set" (i32.const 1) (ref.extern 137))) +;; +;; (assert_return (invoke $m "get" (i32.const 0)) (ref.extern 42)) +;; (assert_return (invoke $m "get" (i32.const 1)) (ref.extern 137)) +;; +;; (module +;; (import "exporter" "table" (table $t 2 externref)) +;; (elem (i32.const 0) externref (ref.null extern))) +;; +;; (assert_return (invoke $m "get" (i32.const 0)) (ref.null extern)) +;; (assert_return (invoke $m "get" (i32.const 1)) (ref.extern 137)) +;; +;; ;; Initializing a table with imported funcref global +;; +;; (module $module4 +;; (func (result i32) +;; i32.const 42 +;; ) +;; (global (export "f") funcref (ref.func 0)) +;; ) +;; +;; (register "module4" $module4) +;; +;; (module +;; (import "module4" "f" (global funcref)) +;; (type $out-i32 (func (result i32))) +;; (table 10 funcref) +;; (elem (offset (i32.const 0)) funcref (global.get 0)) +;; (func (export "call_imported_elem") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 0)) +;; ) +;; ) +;; +;; (assert_return (invoke "call_imported_elem") (i32.const 42)) diff --git a/tests/gen/assert_custom.0.c b/tests/gen/assert_custom.0.c new file mode 100644 index 0000000..c5f3584 --- /dev/null +++ b/tests/gen/assert_custom.0.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_custom.0.h" + +void test() { + custom0Instance instance; + custom0Instantiate(&instance, resolveTestImports); + printStart("custom.0.wasm"); +} diff --git a/tests/gen/assert_custom.1.c b/tests/gen/assert_custom.1.c new file mode 100644 index 0000000..bb62fef --- /dev/null +++ b/tests/gen/assert_custom.1.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_custom.1.h" + +void test() { + custom1Instance instance; + custom1Instantiate(&instance, resolveTestImports); + printStart("custom.1.wasm"); +} diff --git a/tests/gen/assert_custom.2.c b/tests/gen/assert_custom.2.c new file mode 100644 index 0000000..89c6ddb --- /dev/null +++ b/tests/gen/assert_custom.2.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_custom.2.h" + +void test() { + custom2Instance instance; + custom2Instantiate(&instance, resolveTestImports); + printStart("custom.2.wasm"); +} diff --git a/tests/gen/assert_data.10.c b/tests/gen/assert_data.10.c deleted file mode 100644 index e49c55a..0000000 --- a/tests/gen/assert_data.10.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_data.10.h" - -void test() { - data10Instance instance; - data10Instantiate(&instance, resolveTestImports); - printStart("data.10.wasm"); -} diff --git a/tests/gen/assert_data.25.c b/tests/gen/assert_data.25.c new file mode 100644 index 0000000..01a242e --- /dev/null +++ b/tests/gen/assert_data.25.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_data.25.h" + +void test() { + data25Instance instance; + data25Instantiate(&instance, resolveTestImports); + printStart("data.25.wasm"); +} diff --git a/tests/gen/assert_data.26.c b/tests/gen/assert_data.26.c new file mode 100644 index 0000000..9025489 --- /dev/null +++ b/tests/gen/assert_data.26.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_data.26.h" + +void test() { + data26Instance instance; + data26Instantiate(&instance, resolveTestImports); + printStart("data.26.wasm"); +} diff --git a/tests/gen/assert_data.9.c b/tests/gen/assert_data.9.c deleted file mode 100644 index 4a22d75..0000000 --- a/tests/gen/assert_data.9.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_data.9.h" - -void test() { - data9Instance instance; - data9Instantiate(&instance, resolveTestImports); - printStart("data.9.wasm"); -} diff --git a/tests/gen/assert_elem.18.c b/tests/gen/assert_elem.18.c new file mode 100644 index 0000000..1ccb9e1 --- /dev/null +++ b/tests/gen/assert_elem.18.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_elem.18.h" + +void test() { + elem18Instance instance; + elem18Instantiate(&instance, resolveTestImports); + printStart("elem.18.wasm"); +} diff --git a/tests/gen/assert_elem.43.c b/tests/gen/assert_elem.43.c deleted file mode 100644 index f5dee90..0000000 --- a/tests/gen/assert_elem.43.c +++ /dev/null @@ -1,16 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_elem.43.h" - -void test() { - elem43Instance instance; - elem43Instantiate(&instance, resolveTestImports); - printStart("elem.43.wasm"); - assertEqualU32( - elem43_callX2Doverwritten(&instance), - 66u, - "call-overwritten()" - ); -} diff --git a/tests/gen/assert_elem.44.c b/tests/gen/assert_elem.44.c deleted file mode 100644 index 634ea79..0000000 --- a/tests/gen/assert_elem.44.c +++ /dev/null @@ -1,16 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_elem.44.h" - -void test() { - elem44Instance instance; - elem44Instantiate(&instance, resolveTestImports); - printStart("elem.44.wasm"); - assertEqualU32( - elem44_callX2DoverwrittenX2Delement(&instance), - 66u, - "call-overwritten-element()" - ); -} diff --git a/tests/gen/assert_elem.47.c b/tests/gen/assert_elem.47.c new file mode 100644 index 0000000..b293b33 --- /dev/null +++ b/tests/gen/assert_elem.47.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_elem.47.h" + +void test() { + elem47Instance instance; + elem47Instantiate(&instance, resolveTestImports); + printStart("elem.47.wasm"); + assertEqualU32( + elem47_callX2Doverwritten(&instance), + 66u, + "call-overwritten()" + ); +} diff --git a/tests/gen/assert_elem.48.c b/tests/gen/assert_elem.48.c new file mode 100644 index 0000000..533c45c --- /dev/null +++ b/tests/gen/assert_elem.48.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_elem.48.h" + +void test() { + elem48Instance instance; + elem48Instantiate(&instance, resolveTestImports); + printStart("elem.48.wasm"); + assertEqualU32( + elem48_callX2DoverwrittenX2Delement(&instance), + 66u, + "call-overwritten-element()" + ); +} diff --git a/tests/gen/assert_elem.7.c b/tests/gen/assert_elem.7.c index 8fcfb70..aa56f73 100644 --- a/tests/gen/assert_elem.7.c +++ b/tests/gen/assert_elem.7.c @@ -8,14 +8,4 @@ void test() { elem7Instance instance; elem7Instantiate(&instance, resolveTestImports); printStart("elem.7.wasm"); - assertEqualU32( - elem7_callX2D7(&instance), - 65u, - "call-7()" - ); - assertEqualU32( - elem7_callX2D9(&instance), - 66u, - "call-9()" - ); } diff --git a/tests/gen/assert_elem.8.c b/tests/gen/assert_elem.8.c index 51fdd0f..a7b0050 100644 --- a/tests/gen/assert_elem.8.c +++ b/tests/gen/assert_elem.8.c @@ -8,4 +8,14 @@ void test() { elem8Instance instance; elem8Instantiate(&instance, resolveTestImports); printStart("elem.8.wasm"); + assertEqualU32( + elem8_callX2D7(&instance), + 65u, + "call-7()" + ); + assertEqualU32( + elem8_callX2D9(&instance), + 66u, + "call-9()" + ); } diff --git a/tests/gen/custom.0.wasm b/tests/gen/custom.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a085caac36f0fccae4981b34b8d188f145148ea0 GIT binary patch literal 267 zcmZQbEY4+Q00I?(M1|zi;*$Jah2qrYlFaA={@S@P7Ax6o@X%AEYf6m&i#P!RzoOoWv%6IQ}PSP3g(C2WM1uoG6o ONmvONVI|yzl>h*fn0&1O literal 0 HcmV?d00001 diff --git a/tests/gen/custom.10.wasm b/tests/gen/custom.10.wasm new file mode 100644 index 0000000000000000000000000000000000000000..39071487257c34b331f38f878973e5e2a3ba5a36 GIT binary patch literal 24 fcmZQbEY4+QU|?WnW@KRGVPxWFV`Ok-;AQ{-9*+UK literal 0 HcmV?d00001 diff --git a/tests/gen/custom.2.wasm b/tests/gen/custom.2.wasm new file mode 100644 index 0000000000000000000000000000000000000000..19edae6b8df2d001fc8e8e34fd6e5001d9e4039e GIT binary patch literal 101 zcmZQbEY4+QU|?WmXG~zKuV<`hkYY6%Rsf=sj8uh!#LArf#1v*GMh12+ hMz+M1l#ud#1_mxpMs@}T1_j0}ZU$*~h&CfE`T*#z8fE|h literal 0 HcmV?d00001 diff --git a/tests/gen/custom.3.wasm b/tests/gen/custom.3.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0094e1e9b3f71dc53b2eea518375f1c70a3c2203 GIT binary patch literal 9 OcmZQbEY4+Q00ICA$pJ$E literal 0 HcmV?d00001 diff --git a/tests/gen/custom.4.wasm b/tests/gen/custom.4.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0bd6b63b54a10d0bfc9ba02384854cc4c2c868d8 GIT binary patch literal 10 OcmZQbEY4+Q0096B3;{y` literal 0 HcmV?d00001 diff --git a/tests/gen/custom.5.wasm b/tests/gen/custom.5.wasm new file mode 100644 index 0000000000000000000000000000000000000000..80c08090437ca343702489f43cefb326cf3fecf4 GIT binary patch literal 17 UcmZQbEY4+Q00UM=26hGp023JjPyhe` literal 0 HcmV?d00001 diff --git a/tests/gen/custom.6.wasm b/tests/gen/custom.6.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9620ace600fc1a9cfa169cd96ab715c0d3eeb9d0 GIT binary patch literal 46 ycmZQbEY4+Q00K3EM1|zi;*$Jah2qrYlFafd$qLPeMg@VM& foczQTW+p}kE>1>v1_cHM#w>0IX?BPfBP?nG4j3Dj literal 0 HcmV?d00001 diff --git a/tests/gen/custom.9.wasm b/tests/gen/custom.9.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8e93abebfb08658dc0bf3d40f6b86478f18ce1f7 GIT binary patch literal 16 QcmZQbEY4+Q00Jlt02v$tg#Z8m literal 0 HcmV?d00001 diff --git a/tests/gen/custom.json b/tests/gen/custom.json new file mode 100644 index 0000000..1112644 --- /dev/null +++ b/tests/gen/custom.json @@ -0,0 +1,13 @@ +{"source_filename": "custom.wast", + "commands": [ + {"type": "module", "line": 1, "filename": "custom.0.wasm"}, + {"type": "module", "line": 14, "filename": "custom.1.wasm"}, + {"type": "module", "line": 50, "filename": "custom.2.wasm"}, + {"type": "assert_malformed", "line": 61, "filename": "custom.3.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 69, "filename": "custom.4.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 77, "filename": "custom.5.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 85, "filename": "custom.6.wasm", "text": "length out of bounds", "module_type": "binary"}, + {"type": "assert_malformed", "line": 93, "filename": "custom.7.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 102, "filename": "custom.8.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 115, "filename": "custom.9.wasm", "text": "length out of bounds", "module_type": "binary"}, + {"type": "assert_malformed", "line": 123, "filename": "custom.10.wasm", "text": "data count and data section have inconsistent lengths", "module_type": "binary"}]} diff --git a/tests/gen/data.0.wasm b/tests/gen/data.0.wasm index 7aec0a6d3fb5d3afff5a9b31cbbaad72bd0fc705..f5dae0f9b5c35ed3466c36efe3f3ecaa6c54d1a2 100644 GIT binary patch delta 30 lcmYe?%qYl^Se(nqz`(%D%*epVy_ivAqCnt8ZL^8m(g0Yl1@!;` delta 23 ecmdnYm?*%ISe(nqz`(%D%*epV9mF$HFc1JUVgt?q diff --git a/tests/gen/data.10.wasm b/tests/gen/data.10.wasm index 35e1076d25127bb6034f9d08c01023b21013373b..18ed2c825971a1d2439fd728d86ec9363d6c8740 100644 GIT binary patch literal 30 lcmZQbEY4+QU|?WnW@KPwV`HpmaAe@-W@ltjX5eN_1OPEH0>}UW literal 47 zcmZQbEY4+QU|?VpVdN+-NKGzDEiPfpP0h_Os$^nd?231jhgX literal 24 fcmZQbEY4+QU|?WnW@KRE=451W{QsYwn=ugpDv<;h diff --git a/tests/gen/data.12.wasm b/tests/gen/data.12.wasm index 16b297870e0e0b38f0eb412bf25f1c3dc686a37a..35e1076d25127bb6034f9d08c01023b21013373b 100644 GIT binary patch literal 47 zcmZQbEY4+QU|?VpVdN+-NKGzDEiPfpP0h_Os$^ndW(!4BQL=8)E^i diff --git a/tests/gen/data.15.wasm b/tests/gen/data.15.wasm index 2f335cb3a7f7e9c3fd316cf3b16cb2343c5e8abb..5b30856ef8da738597b6c05e83095bf15f440e8c 100644 GIT binary patch literal 38 tcmZQbEY4+QU|?VpVdN+-NKGzDEiPfpP0h_Os$^nd;AUfFaAe?S005;#2h0Ef literal 23 ecmZQbEY4+QU|?WnW@KRG=3r!SY-nKNW&i*o<^r(* diff --git a/tests/gen/data.16.wasm b/tests/gen/data.16.wasm index 16b297870e0e0b38f0eb412bf25f1c3dc686a37a..99d1297ac58ee70d103dbc1481194cf2670ebc6a 100644 GIT binary patch literal 22 bcmZQbEY4+QU|?WnVFXg#Y>W(!4BQL=8)E^i literal 21 acmZQbEY4+QU|?Wn29n%tj0}zp+zbF2{{gB1 diff --git a/tests/gen/data.17.wasm b/tests/gen/data.17.wasm index 5b30856ef8da738597b6c05e83095bf15f440e8c..2f335cb3a7f7e9c3fd316cf3b16cb2343c5e8abb 100644 GIT binary patch literal 23 ecmZQbEY4+QU|?WnW@KRG=3r!SY-nKNW&i*o<^r(* literal 38 tcmZQbEY4+QU|?VpVdN+-NKGzDEiPfpP0h_Os$^nd;AUfFaAe?S005;#2h0Ef diff --git a/tests/gen/data.18.wasm b/tests/gen/data.18.wasm index 99d1297ac58ee70d103dbc1481194cf2670ebc6a..16b297870e0e0b38f0eb412bf25f1c3dc686a37a 100644 GIT binary patch literal 21 acmZQbEY4+QU|?Wn29n%tj0}zp+zbF2{{gB1 literal 22 bcmZQbEY4+QU|?WnVFXg#Y>W(!4BQL=8)E^i diff --git a/tests/gen/data.19.wasm b/tests/gen/data.19.wasm index 2b9f8d019cc32dd06e8b5ac33e3b0a6b9e1b96bc..5b30856ef8da738597b6c05e83095bf15f440e8c 100644 GIT binary patch delta 12 TcmY#an;_55#>n8vz|8;v3%dbV delta 13 UcmY#WpCHe{&dA`%z|EKl01br!y8r+H diff --git a/tests/gen/data.20.wasm b/tests/gen/data.20.wasm index 4e16452efe3d4cea1e1a82e17b7dd42580d152ef..99d1297ac58ee70d103dbc1481194cf2670ebc6a 100644 GIT binary patch literal 22 bcmZQbEY4+QU|?WnVFXg#Y>W(!4BQL=8)E^i literal 40 vcmZQbEY4+QU|?VpW#lL>NKGzDEiPfpP0h_Os$^nhVCH6LWN>8QW=sSCwK51a diff --git a/tests/gen/data.21.wasm b/tests/gen/data.21.wasm index 54addd2cc2a49eedb58a155bce8399eacc644ae0..2b9f8d019cc32dd06e8b5ac33e3b0a6b9e1b96bc 100644 GIT binary patch literal 39 ucmZQbEY4+QU|?VpVdN+-NKGzDEiPfpP0h_Os$^nd;AUrJaAe?SOauU}dk8N8 literal 62 zcmZQbEY4+QU|?XNKGzDEiPfpP0h_Os$^nhVCH6LWN>8QW=sSCwK51a literal 63 zcmZQbEY4+QU|?XNKGzDEiPfpP0h_Os$^nhVCH6LWN>8UW=sSCwKfPf diff --git a/tests/gen/data.25.wasm b/tests/gen/data.25.wasm index 7ba207e5527a31fd25e314a68e96576e09994ff5..1b418825e88b6e49e32bec0dd9f98efcefea1f5f 100644 GIT binary patch literal 39 ucmZQbEY4+QU|?VpVdN+-NKGzDEiPfpP0h_Os$^nd;AUrJaAf3WOauU}e+V!D literal 22 bcmZQbEY4+QU|?Wn29n(Dj0}zp+>D6;925c# diff --git a/tests/gen/data.26.wasm b/tests/gen/data.26.wasm index cfb111d1d54bfd771d7932f50c015b185aed48ba..b9b37af70b62c13ede611e33212db0dc54a67fe7 100644 GIT binary patch literal 40 vcmZQbEY4+QU|?VpW#lL>NKGzDEiPfpP0h_Os$^nhVCH6LWN>8UW=sSCwKfPf literal 23 ccmZQbEY4+QU|?WnVFXg#?2HVK4BU)~03CV)4*&oF diff --git a/tests/gen/data.27.wasm b/tests/gen/data.27.wasm index 7a81b3901dd866834b113b6da2480dd859e31a14..7ba207e5527a31fd25e314a68e96576e09994ff5 100644 GIT binary patch literal 22 bcmZQbEY4+QU|?Wn29n(Dj0}zp+>D6;925c# literal 23 ecmZQbEY4+QU|?WnVPs@rZ5 diff --git a/tests/gen/data.30.wasm b/tests/gen/data.30.wasm index 22ad3fcb50e9ad0f3ce948faf0b7a3b27afd1ad7..4d69a483cd751fb42a838da6b101564571c16fbf 100644 GIT binary patch literal 21 acmZQbEY4+QU|?Wn29n%tj0}#9+zbF30s*T4 literal 48 zcmZQbEY4+QU|?X9VB{z+NKGzDEiU0o&&f|p%!$u5He#-4U}Xl%bF(utC^K*~CISEr C1qr7B diff --git a/tests/gen/data.31.wasm b/tests/gen/data.31.wasm index d614b91246efe6ca66a78c20d0cac7a446370899..731ed5f178269699296c534c27546181e3834128 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WnVPs@rZ5 literal 25 gcmZQbEY4+QU|?WnVPs@v;^t&zaBOH`;bu$(049e67ytkO diff --git a/tests/gen/data.32.wasm b/tests/gen/data.32.wasm index e3714e493c3a36ebcb25381e1ae72551f2a59ca1..22ad3fcb50e9ad0f3ce948faf0b7a3b27afd1ad7 100644 GIT binary patch literal 48 zcmZQbEY4+QU|?X9VB{z+NKGzDEiU0o&&f|p%!$u5He#-4U}Xl%bF(utC^K*~CISEr C1qr7B literal 41 wcmZQbEY4+QU|?VpVdN+-NKGzDEiPfpP0h_Os$^nd|!|!N}k^r=FWJ5dahk0@?ro diff --git a/tests/gen/data.39.wasm b/tests/gen/data.39.wasm index e00ce9ca76f56574e792405116fcdcf0f03c82c7..0ec7bcfb678b4bc72de2f97f4522cee2defe6bc8 100644 GIT binary patch literal 23 ecmZQbEY4+QU|?WnW@KRE=3r!SoKw%umo> diff --git a/tests/gen/data.40.wasm b/tests/gen/data.40.wasm index 9feb627c16085a231b1998658cd08d11ab08138a..0d15760c2c9bc7d9ca13b9fc306a6b4ee89a1715 100644 GIT binary patch literal 40 vcmZQbEY4+QU|?VpVdN+-NKGzDEiPfpP0h_Os$^nd*TK literal 21 ccmZQbEY4+QU|?WnW@KRGW@BVo> literal 22 dcmZQbEY4+QU|?WnW@KRGW@lt@WXRxV001250u%rM diff --git a/tests/gen/data.42.wasm b/tests/gen/data.42.wasm index 5ecf5fa257a2000a391c97b86d6b813ebcb10e39..8b7546cefe56c83ac45cffeca7a9832d4082dd47 100644 GIT binary patch literal 22 bcmZQbEY4+QU|?Wn29n(Dj7*G<4BQL=8+HM% literal 20 YcmZQbEY4+QU|?WnW@KRGW(5%p02iVGY5)KL diff --git a/tests/gen/data.43.wasm b/tests/gen/data.43.wasm index 276373cf1e756eab591398fb626f8667f7dea500..e00ce9ca76f56574e792405116fcdcf0f03c82c7 100644 GIT binary patch literal 16 XcmZQbEY4+QU|`^8V`Ok-;AQ{-6F>o> literal 22 bcmZQbEY4+QU|?WnW@KRGW(N|E4BQL=8*~A! diff --git a/tests/gen/data.44.wasm b/tests/gen/data.44.wasm index c4ff31f314c9a230ae2f8e6dd7084a02f0609553..450fb730d21e6ab5fc70a9f419685d71d55451ab 100644 GIT binary patch literal 17 YcmZQbEY4+QU|`^8XJle@WZ-5102HnPr2qf` literal 22 bcmZQbEY4+QU|?WnW@KRGW@lt@1X2tD8?yne diff --git a/tests/gen/data.45.wasm b/tests/gen/data.45.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d83715169ee2f55cf74e49c38354738cd3ce612f GIT binary patch literal 84 zcmZQbEY4+QU|?Wn29n&aj7*G<4BU1Mj7-cdtZeKYoLt;IynOrufWZ<@AU}R!uVP#|I;N;@w;pO8O5EK#?5fu}ckd%^^k(HBI iP*hS@QB_md(A3h_(bdy8Ff=kYF*P%{u(Yzau>}A&2nmD$ literal 0 HcmV?d00001 diff --git a/tests/gen/data.47.wasm b/tests/gen/data.47.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9feb627c16085a231b1998658cd08d11ab08138a GIT binary patch literal 21 ccmZQbEY4+QU|?WnW@KRGW@BVHe#-4U}a`xVC3dtWKae|ZUz9*5(k9< literal 0 HcmV?d00001 diff --git a/tests/gen/data.51.wasm b/tests/gen/data.51.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9ec7b41779bf58dbb486415ba2c3b4f7c5c3fdd4 GIT binary patch literal 45 zcmZQbEY4+QU|?VpVPq*uEiU0o&&f|p%+bv>He#-4U}a`xVC3dtWKd>sWZ-510MLpD AqW}N^ literal 0 HcmV?d00001 diff --git a/tests/gen/data.52.wasm b/tests/gen/data.52.wasm new file mode 100644 index 0000000000000000000000000000000000000000..22c6f1ff59b190f277ebbe793bc4fc4ffcff2117 GIT binary patch literal 22 dcmZQbEY4+QU|?WnW@KRGW@lt@WXRxV001250u%rM literal 0 HcmV?d00001 diff --git a/tests/gen/data.53.wasm b/tests/gen/data.53.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5ecf5fa257a2000a391c97b86d6b813ebcb10e39 GIT binary patch literal 20 YcmZQbEY4+QU|?WnW@KRGW(5%p02iVGY5)KL literal 0 HcmV?d00001 diff --git a/tests/gen/data.54.wasm b/tests/gen/data.54.wasm new file mode 100644 index 0000000000000000000000000000000000000000..276373cf1e756eab591398fb626f8667f7dea500 GIT binary patch literal 22 bcmZQbEY4+QU|?WnW@KRGW(N|E4BQL=8*~A! literal 0 HcmV?d00001 diff --git a/tests/gen/data.55.wasm b/tests/gen/data.55.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c4ff31f314c9a230ae2f8e6dd7084a02f0609553 GIT binary patch literal 22 bcmZQbEY4+QU|?WnW@KRGW@lt@1X2tD8?yne literal 0 HcmV?d00001 diff --git a/tests/gen/data.56.wasm b/tests/gen/data.56.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6dba53e411c5fb92e78f82a0cf07294ef02880a1 GIT binary patch literal 34 pcmZQbEY4+QU|?Y4W@ITzEiPe9XRc>tWoBexHe#-4U}a`xVB}_FWKd@0W&i-d%?Dus literal 0 HcmV?d00001 diff --git a/tests/gen/data.59.wasm b/tests/gen/data.59.wasm new file mode 100644 index 0000000000000000000000000000000000000000..bcf57caebc2b93c23e8421cdb2471a75ca4d19f2 GIT binary patch literal 47 zcmZQbEY4+QU|?X9U}PytEiU0p&&f|p%+bv)Ez!+1He#-4WMyV#VB}_FWKd?{W&i;B C}UW literal 30 lcmZQbEY4+QU|?WnW@KRG=4WDXWZ-5@WN`fdpP8F62>?231jhgX diff --git a/tests/gen/data.json b/tests/gen/data.json index a087b07..13345e8 100644 --- a/tests/gen/data.json +++ b/tests/gen/data.json @@ -1,47 +1,62 @@ {"source_filename": "data.wast", "commands": [ {"type": "module", "line": 5, "filename": "data.0.wasm"}, - {"type": "module", "line": 23, "filename": "data.1.wasm"}, - {"type": "module", "line": 27, "filename": "data.2.wasm"}, - {"type": "module", "line": 32, "filename": "data.3.wasm"}, - {"type": "module", "line": 40, "filename": "data.4.wasm"}, - {"type": "module", "line": 50, "filename": "data.5.wasm"}, - {"type": "module", "line": 55, "filename": "data.6.wasm"}, - {"type": "module", "line": 61, "filename": "data.7.wasm"}, - {"type": "module", "line": 66, "filename": "data.8.wasm"}, - {"type": "module", "line": 78, "filename": "data.9.wasm"}, - {"type": "module", "line": 83, "filename": "data.10.wasm"}, - {"type": "module", "line": 89, "filename": "data.11.wasm"}, - {"type": "module", "line": 94, "filename": "data.12.wasm"}, - {"type": "module", "line": 98, "filename": "data.13.wasm"}, - {"type": "module", "line": 103, "filename": "data.14.wasm"}, - {"type": "module", "line": 108, "filename": "data.15.wasm"}, - {"type": "module", "line": 113, "filename": "data.16.wasm"}, - {"type": "module", "line": 117, "filename": "data.17.wasm"}, - {"type": "module", "line": 122, "filename": "data.18.wasm"}, - {"type": "module", "line": 127, "filename": "data.19.wasm"}, - {"type": "module", "line": 132, "filename": "data.20.wasm"}, - {"type": "module", "line": 137, "filename": "data.21.wasm"}, - {"type": "module", "line": 143, "filename": "data.22.wasm"}, - {"type": "module", "line": 149, "filename": "data.23.wasm"}, - {"type": "module", "line": 154, "filename": "data.24.wasm"}, - {"type": "assert_unlinkable", "line": 162, "filename": "data.25.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 170, "filename": "data.26.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 178, "filename": "data.27.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 186, "filename": "data.28.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 194, "filename": "data.29.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 211, "filename": "data.30.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 220, "filename": "data.31.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 227, "filename": "data.32.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 235, "filename": "data.33.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 243, "filename": "data.34.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 251, "filename": "data.35.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 258, "filename": "data.36.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 266, "filename": "data.37.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 273, "filename": "data.38.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_invalid", "line": 283, "filename": "data.39.wasm", "text": "unknown memory 0", "module_type": "binary"}, - {"type": "assert_invalid", "line": 292, "filename": "data.40.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 300, "filename": "data.41.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 308, "filename": "data.42.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 316, "filename": "data.43.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 324, "filename": "data.44.wasm", "text": "constant expression required", "module_type": "binary"}]} + {"type": "module", "line": 35, "filename": "data.1.wasm"}, + {"type": "module", "line": 39, "filename": "data.2.wasm"}, + {"type": "module", "line": 44, "filename": "data.3.wasm"}, + {"type": "module", "line": 52, "filename": "data.4.wasm"}, + {"type": "module", "line": 62, "filename": "data.5.wasm"}, + {"type": "module", "line": 67, "filename": "data.6.wasm"}, + {"type": "module", "line": 73, "filename": "data.7.wasm"}, + {"type": "module", "line": 78, "filename": "data.8.wasm"}, + {"type": "assert_invalid", "line": 85, "filename": "data.9.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 89, "filename": "data.10.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "module", "line": 96, "filename": "data.11.wasm"}, + {"type": "module", "line": 101, "filename": "data.12.wasm"}, + {"type": "module", "line": 107, "filename": "data.13.wasm"}, + {"type": "module", "line": 112, "filename": "data.14.wasm"}, + {"type": "module", "line": 116, "filename": "data.15.wasm"}, + {"type": "module", "line": 121, "filename": "data.16.wasm"}, + {"type": "module", "line": 126, "filename": "data.17.wasm"}, + {"type": "module", "line": 131, "filename": "data.18.wasm"}, + {"type": "module", "line": 135, "filename": "data.19.wasm"}, + {"type": "module", "line": 140, "filename": "data.20.wasm"}, + {"type": "module", "line": 145, "filename": "data.21.wasm"}, + {"type": "module", "line": 150, "filename": "data.22.wasm"}, + {"type": "module", "line": 155, "filename": "data.23.wasm"}, + {"type": "module", "line": 161, "filename": "data.24.wasm"}, + {"type": "module", "line": 167, "filename": "data.25.wasm"}, + {"type": "module", "line": 172, "filename": "data.26.wasm"}, + {"type": "assert_uninstantiable", "line": 180, "filename": "data.27.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 188, "filename": "data.28.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 196, "filename": "data.29.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 203, "filename": "data.30.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 210, "filename": "data.31.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 227, "filename": "data.32.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 236, "filename": "data.33.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 243, "filename": "data.34.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 251, "filename": "data.35.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 259, "filename": "data.36.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 267, "filename": "data.37.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 274, "filename": "data.38.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 282, "filename": "data.39.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 289, "filename": "data.40.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_invalid", "line": 299, "filename": "data.41.wasm", "text": "unknown memory", "module_type": "binary"}, + {"type": "assert_invalid", "line": 307, "filename": "data.42.wasm", "text": "unknown memory 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 320, "filename": "data.43.wasm", "text": "unknown memory 0", "module_type": "binary"}, + {"type": "assert_invalid", "line": 331, "filename": "data.44.wasm", "text": "unknown memory 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 343, "filename": "data.45.wasm", "text": "unknown memory 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 365, "filename": "data.46.wasm", "text": "unknown memory 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 384, "filename": "data.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 401, "filename": "data.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 409, "filename": "data.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 417, "filename": "data.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 426, "filename": "data.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 435, "filename": "data.52.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 443, "filename": "data.53.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 451, "filename": "data.54.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 459, "filename": "data.55.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 467, "filename": "data.56.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 476, "filename": "data.57.wasm", "text": "unknown global 0", "module_type": "binary"}, + {"type": "assert_invalid", "line": 484, "filename": "data.58.wasm", "text": "unknown global 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 493, "filename": "data.59.wasm", "text": "constant expression required", "module_type": "binary"}]} diff --git a/tests/gen/elem.0.wasm b/tests/gen/elem.0.wasm index 7637484030dad23433dee6006d0835999c1e8203..5fbe3d128d55cfd2fed251317acc8d95b10eb1a8 100644 GIT binary patch literal 54 zcmZQbEY4+QU|?WmVN76PU}k1wU|?ZkEMVZ`6k=v@WZ-515kNsOn~R-^3B=~{pnTF^q+y5#6$QX;LOK1eYFtN;K2 diff --git a/tests/gen/elem.10.wasm b/tests/gen/elem.10.wasm index bb833b24cf07774346020036899fa081557c379a..a1726fbe8a29229ff5f6eacf2767411d5373284c 100644 GIT binary patch literal 55 zcmV~$K?;B{3`N2BV@2C;y^uGtN_Gl`UdWqRCA$iRUdWqRCA$iRUdWqRCA$iRUdWqRCA$iR~{pnTF^q+y5#6$QX;LOK1eYFtN;K2 literal 55 zcmV~$K?;B{3`N2BV?}MZUdWr+N_Gl` Hwa92c5S|D- diff --git a/tests/gen/elem.20.wasm b/tests/gen/elem.20.wasm index 81d76695616814af2e3f3f8c5f4aad5d0808ff30..a900630b527e3dc3a770faf362eb62afb3a834d5 100644 GIT binary patch delta 21 ccmdPUm>?m*z{$?Y;K;zu$iT(I$i%=602qD&g8%>k delta 21 ccmdPUm>?m*$jQ#g;K;zu$iT(I$i%=602qz|ga7~l diff --git a/tests/gen/elem.21.wasm b/tests/gen/elem.21.wasm index 421a5ec78593a47ddc16b34f58a0d36178fb6c1a..81d76695616814af2e3f3f8c5f4aad5d0808ff30 100644 GIT binary patch literal 40 rcmV~$fe8Q*6hOiE_!6eF2?Ho)|8mEEN5F7FP7=i{wkne$Jxq)bN$>)t literal 22 dcmZQbEY4+QU|?WjVJu)^;ACTDaAf3W001Bj0vP}R diff --git a/tests/gen/elem.22.wasm b/tests/gen/elem.22.wasm index 3ed8ed32f9a3c42c0b824a49d69d5ae30e00f45f..421a5ec78593a47ddc16b34f58a0d36178fb6c1a 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WjVJu)^;ACTDaAf3W001Bj0vP}R literal 39 scmV~$fe8R03~{pnTF^q+y5#6$W{I?d`bd=mwg3PC diff --git a/tests/gen/elem.23.wasm b/tests/gen/elem.23.wasm index 27cb9b70737ffe71472065c5898db05b4df4a67d..3ed8ed32f9a3c42c0b824a49d69d5ae30e00f45f 100644 GIT binary patch literal 39 scmV~$fe8R03~{pnTF^q+y5#6$W{I?d`bd=mwg3PC literal 55 zcmV~$K?;B{3`N2BV?|B3UdWr+N_Pr{JQ3`N2BO%RZ@EW{=RJQ3`N2BO%RZ@EW{=RcqzIScqzISz`Z4t-U IL@hGf4;4BHu>b%7 diff --git a/tests/gen/elem.3.wasm b/tests/gen/elem.3.wasm index 78af4cf10692576f00795f42af42c6bd1c12ec83..5b83d93600e4024f98f9dd62daded55fbe63e0aa 100644 GIT binary patch literal 55 zcmV~$K?;B{3`N2BV?}MZUdWr+N_Gl` Hwa92c5S|D- literal 63 zcmZQbEY4+QU|?WmVN76PU}j=uU}0e_VBq4EXJv3?;08)LGJ{EWFv$uR;bLKAV&Db< DqTK`z diff --git a/tests/gen/elem.30.wasm b/tests/gen/elem.30.wasm index 57f2049af5fe6e17827ddd81127153b3d5cc0c10..4f1cdd8e0d6c6d769060d1c1714e4af48b8eedd8 100644 GIT binary patch literal 55 zcmV~$K?;B{3`N2BV?}MZUdWqRB|C*eg6DUJ9z`Z4t-U IL@hGf4;4BHu>b%7 literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;ACfHaAe?SWZ+_9WMbe305sqNDF6Tf diff --git a/tests/gen/elem.31.wasm b/tests/gen/elem.31.wasm index d0d7cca6cbecd9c7cd4f9bec90d2e819d669ac4a..57f2049af5fe6e17827ddd81127153b3d5cc0c10 100644 GIT binary patch literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;ACfHaAe?SWZ+_9WMbe305sqNDF6Tf literal 22 dcmZQbEY4+QU|?WjVJu)^He#-4U}0e_U|{6rU}R7RLT&~C+{_2_ diff --git a/tests/gen/elem.35.wasm b/tests/gen/elem.35.wasm index 351efbf83e65208242af95f74f4a19ea899cb09e..d25c0fe30fae716e3112e6de7f39265d7aa90dac 100644 GIT binary patch delta 9 QcmdPXo1n#_%)re600_AONdN!< delta 9 QcmdPXo1n$w$iU4200}VxX8-^I diff --git a/tests/gen/elem.36.wasm b/tests/gen/elem.36.wasm index 4ae54a1bf063a8dbc508ff1417ca38522aa19a3a..351efbf83e65208242af95f74f4a19ea899cb09e 100644 GIT binary patch literal 46 zcmZQbEY4+QU|?VpVPq*uEiU0o&&f|p%+bv>He#-4U}0e_U|{6rU}R8caAe?S007-Y B2oV4P literal 23 ecmZQbEY4+QU|?WjVJu)^tVPPy_VB}jby} literal 44 zcmZQbEY4+QU|?VpVPq*uEiU0o&&f|p%+bv>He#-4U}0e_U|{5AV`NZf%&P~_ diff --git a/tests/gen/elem.42.wasm b/tests/gen/elem.42.wasm index 4b8a7689026caf5560b0703e8bdacefb2bf4e62a..bbe414a164d4c0315238d130c24dbe58c221bb57 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WjVJu)^He#-4U}0e_U|{5AV`NZf%&P~_ literal 87 zcmZQbEY4+QU|?WmWlUgTtY>Cn269+f7z-G<*hLrxk`r@sbo0wni^_{KOG;An7??PD jnHU^7xq*5>BqNt7Gb@ARK?ZIhd5D3V9VjZuz`zXvRHh8@ diff --git a/tests/gen/elem.44.wasm b/tests/gen/elem.44.wasm index 258518c6fb1ae3ba48e7d83d2c7df59bfa4f1aab..4b8a7689026caf5560b0703e8bdacefb2bf4e62a 100644 GIT binary patch literal 48 zcmZQbEY4+QU|?X9U}PytEiU0p&&f|p%+bv)Ez!+1He#-4WMN?}U|{5AV`NZf;AQ{- D2VMzU literal 111 zcmWlRF%AMD6b0W03GNb$O*GlUD{zRtiAa870xW?aEj^o_Ol+o@Oa`H60zigtptm~H zu~&}5U5tc#Vyc++L65{Cn269+f7z-G<*hLrxk`r@sbo0wni^_{KOG;An7??PD jnHU^7xq*5>BqNt7Gb@ARK?ZIhd5D3V9VjZuz`zXvRHh8@ literal 0 HcmV?d00001 diff --git a/tests/gen/elem.48.wasm b/tests/gen/elem.48.wasm new file mode 100644 index 0000000000000000000000000000000000000000..258518c6fb1ae3ba48e7d83d2c7df59bfa4f1aab GIT binary patch literal 111 zcmWlRF%AMD6b0W03GNb$O*GlUD{zRtiAa870xW?aEj^o_Ol+o@Oa`H60zigtptm~H zu~&}5U5tc#Vyc++L65{Cr0dg2vSQrZ!xY&i6*pd@-a&*lZpbSd}W=>uv21j;o ipdLp~Zbn8fSr%3X$Ab*qK=Kd+H#<;HkO53{f@lCPmI~7V diff --git a/tests/gen/elem.8.wasm b/tests/gen/elem.8.wasm index 4ece8ed100764b2924c0763527c1d01576da64b3..2cca27ec6d177c108f8965f54d3d2f90cd288853 100644 GIT binary patch literal 95 zcmZQbEY4+QU|?WmWlUgTtY>Cr0dg2vSQrZ!xY&i6*pd@-a&*lZpbSd}W=>uv21j;o ipdLp~Zbn8fSr%3X$Ab*qK=Kd+H#<;HkO53{f@lCPmI~7V literal 39 tcmV~$fe8R03~{pnTF^q+y5#6$juL4F^#MqW0<{1D diff --git a/tests/gen/elem.9.wasm b/tests/gen/elem.9.wasm index a1726fbe8a29229ff5f6eacf2767411d5373284c..4ece8ed100764b2924c0763527c1d01576da64b3 100644 GIT binary patch literal 39 tcmV~$fe8R03~{pnTF^q+y5#6$juL4F^#MqW0<{1D literal 55 zcmV~$K?;B{3`N2BV@2C;y^uGtN_Gl` Date: Sun, 13 Oct 2024 12:10:23 -0700 Subject: [PATCH 04/11] update tests --- tests/gen/assert_if.0.c | 21 +- tests/gen/if.0.wasm | Bin 1771 -> 1754 bytes tests/gen/if.1.wat | 1 + tests/gen/if.10.wat | 1 + tests/gen/if.100.wasm | Bin 0 -> 37 bytes tests/gen/if.101.wasm | Bin 0 -> 39 bytes tests/gen/if.102.wasm | Bin 0 -> 42 bytes tests/gen/if.103.wasm | Bin 0 -> 44 bytes tests/gen/if.104.wat | 1 + tests/gen/if.105.wat | 1 + tests/gen/if.106.wat | 1 + tests/gen/if.107.wat | 1 + tests/gen/if.108.wat | 1 + tests/gen/if.109.wat | 1 + tests/gen/if.11.wat | 1 + tests/gen/if.110.wat | 1 + tests/gen/if.111.wat | 1 + tests/gen/if.112.wat | 1 + tests/gen/if.113.wat | 1 + tests/gen/if.114.wat | 1 + tests/gen/if.115.wat | 1 + tests/gen/if.116.wat | 1 + tests/gen/if.12.wasm | Bin 34 -> 31 bytes tests/gen/if.13.wasm | Bin 33 -> 30 bytes tests/gen/if.14.wasm | Bin 32 -> 30 bytes tests/gen/if.15.wasm | Bin 30 -> 30 bytes tests/gen/if.16.wasm | Bin 32 -> 30 bytes tests/gen/if.17.wasm | Bin 34 -> 30 bytes tests/gen/if.18.wasm | Bin 34 -> 30 bytes tests/gen/if.19.wasm | Bin 33 -> 30 bytes tests/gen/if.2.wasm | Bin 30 -> 0 bytes tests/gen/if.2.wat | 1 + tests/gen/if.20.wasm | Bin 35 -> 30 bytes tests/gen/if.21.wasm | Bin 35 -> 31 bytes tests/gen/if.22.wasm | Bin 35 -> 31 bytes tests/gen/if.23.wasm | Bin 42 -> 32 bytes tests/gen/if.24.wasm | Bin 37 -> 34 bytes tests/gen/if.25.wasm | Bin 37 -> 33 bytes tests/gen/if.26.wasm | Bin 39 -> 33 bytes tests/gen/if.27.wasm | Bin 35 -> 34 bytes tests/gen/if.28.wasm | Bin 35 -> 38 bytes tests/gen/if.29.wasm | Bin 37 -> 33 bytes tests/gen/if.3.wasm | Bin 30 -> 0 bytes tests/gen/if.3.wat | 1 + tests/gen/if.30.wasm | Bin 37 -> 32 bytes tests/gen/if.31.wasm | Bin 38 -> 30 bytes tests/gen/if.32.wasm | Bin 38 -> 36 bytes tests/gen/if.33.wasm | Bin 39 -> 35 bytes tests/gen/if.34.wasm | Bin 39 -> 31 bytes tests/gen/if.35.wasm | Bin 27 -> 32 bytes tests/gen/if.36.wasm | Bin 32 -> 35 bytes tests/gen/if.37.wasm | Bin 32 -> 34 bytes tests/gen/if.38.wasm | Bin 34 -> 34 bytes tests/gen/if.39.wasm | Bin 40 -> 33 bytes tests/gen/if.4.wasm | Bin 30 -> 0 bytes tests/gen/if.4.wat | 1 + tests/gen/if.40.wasm | Bin 35 -> 37 bytes tests/gen/if.41.wasm | Bin 37 -> 37 bytes tests/gen/if.42.wasm | Bin 36 -> 34 bytes tests/gen/if.43.wasm | Bin 29 -> 35 bytes tests/gen/if.44.wasm | Bin 33 -> 35 bytes tests/gen/if.45.wasm | Bin 41 -> 35 bytes tests/gen/if.46.wasm | Bin 63 -> 38 bytes tests/gen/if.47.wasm | Bin 34 -> 38 bytes tests/gen/if.48.wasm | Bin 32 -> 36 bytes tests/gen/if.49.wasm | Bin 40 -> 40 bytes tests/gen/if.5.wat | 1 + tests/gen/if.50.wasm | Bin 35 -> 40 bytes tests/gen/if.51.wasm | Bin 36 -> 38 bytes tests/gen/if.52.wasm | Bin 37 -> 37 bytes tests/gen/if.53.wasm | Bin 0 -> 37 bytes tests/gen/if.53.wat | 1 - tests/gen/if.54.wasm | Bin 0 -> 39 bytes tests/gen/if.54.wat | 1 - tests/gen/if.55.wasm | Bin 0 -> 42 bytes tests/gen/if.55.wat | 1 - tests/gen/if.56.wasm | Bin 0 -> 40 bytes tests/gen/if.56.wat | 1 - tests/gen/if.57.wasm | Bin 0 -> 37 bytes tests/gen/if.57.wat | 1 - tests/gen/if.58.wasm | Bin 0 -> 37 bytes tests/gen/if.58.wat | 1 - tests/gen/if.59.wasm | Bin 0 -> 39 bytes tests/gen/if.59.wat | 1 - tests/gen/if.6.wasm | Bin 30 -> 0 bytes tests/gen/if.6.wat | 1 + tests/gen/{if.1.wasm => if.60.wasm} | Bin 30 -> 35 bytes tests/gen/if.60.wat | 1 - tests/gen/{if.5.wasm => if.61.wasm} | Bin 30 -> 35 bytes tests/gen/if.61.wat | 1 - tests/gen/if.62.wasm | Bin 0 -> 38 bytes tests/gen/if.62.wat | 1 - tests/gen/if.63.wasm | Bin 0 -> 38 bytes tests/gen/if.64.wasm | Bin 0 -> 37 bytes tests/gen/if.65.wasm | Bin 0 -> 37 bytes tests/gen/if.66.wasm | Bin 0 -> 42 bytes tests/gen/if.67.wasm | Bin 0 -> 42 bytes tests/gen/if.68.wasm | Bin 0 -> 38 bytes tests/gen/if.69.wasm | Bin 0 -> 38 bytes tests/gen/if.7.wasm | Bin 30 -> 0 bytes tests/gen/if.7.wat | 1 + tests/gen/if.70.wasm | Bin 0 -> 43 bytes tests/gen/if.71.wasm | Bin 0 -> 43 bytes tests/gen/if.72.wasm | Bin 0 -> 39 bytes tests/gen/if.73.wasm | Bin 0 -> 39 bytes tests/gen/if.74.wasm | Bin 0 -> 44 bytes tests/gen/if.75.wasm | Bin 0 -> 44 bytes tests/gen/if.76.wasm | Bin 0 -> 42 bytes tests/gen/if.77.wasm | Bin 0 -> 42 bytes tests/gen/{if.9.wasm => if.78.wasm} | Bin 31 -> 27 bytes tests/gen/{if.11.wasm => if.79.wasm} | Bin 32 -> 32 bytes tests/gen/if.8.wasm | Bin 30 -> 0 bytes tests/gen/if.8.wat | 1 + tests/gen/if.80.wasm | Bin 0 -> 32 bytes tests/gen/if.81.wasm | Bin 0 -> 34 bytes tests/gen/if.82.wasm | Bin 0 -> 40 bytes tests/gen/if.83.wasm | Bin 0 -> 35 bytes tests/gen/if.84.wasm | Bin 0 -> 37 bytes tests/gen/if.85.wasm | Bin 0 -> 36 bytes tests/gen/{if.10.wasm => if.86.wasm} | Bin 31 -> 29 bytes tests/gen/if.87.wasm | Bin 0 -> 33 bytes tests/gen/if.88.wasm | Bin 0 -> 41 bytes tests/gen/if.89.wasm | Bin 0 -> 63 bytes tests/gen/if.9.wat | 1 + tests/gen/if.90.wasm | Bin 0 -> 34 bytes tests/gen/if.91.wasm | Bin 0 -> 32 bytes tests/gen/if.92.wasm | Bin 0 -> 40 bytes tests/gen/if.93.wasm | Bin 0 -> 35 bytes tests/gen/if.94.wasm | Bin 0 -> 36 bytes tests/gen/if.95.wasm | Bin 0 -> 37 bytes tests/gen/if.96.wasm | Bin 0 -> 34 bytes tests/gen/if.97.wasm | Bin 0 -> 36 bytes tests/gen/if.98.wasm | Bin 0 -> 39 bytes tests/gen/if.99.wasm | Bin 0 -> 41 bytes tests/gen/if.json | 351 ++++++++------ tests/if.wast | 696 ++++++++++++++++++++++++++- 136 files changed, 896 insertions(+), 206 deletions(-) create mode 100644 tests/gen/if.1.wat create mode 100644 tests/gen/if.10.wat create mode 100644 tests/gen/if.100.wasm create mode 100644 tests/gen/if.101.wasm create mode 100644 tests/gen/if.102.wasm create mode 100644 tests/gen/if.103.wasm create mode 100644 tests/gen/if.104.wat create mode 100644 tests/gen/if.105.wat create mode 100644 tests/gen/if.106.wat create mode 100644 tests/gen/if.107.wat create mode 100644 tests/gen/if.108.wat create mode 100644 tests/gen/if.109.wat create mode 100644 tests/gen/if.11.wat create mode 100644 tests/gen/if.110.wat create mode 100644 tests/gen/if.111.wat create mode 100644 tests/gen/if.112.wat create mode 100644 tests/gen/if.113.wat create mode 100644 tests/gen/if.114.wat create mode 100644 tests/gen/if.115.wat create mode 100644 tests/gen/if.116.wat delete mode 100644 tests/gen/if.2.wasm create mode 100644 tests/gen/if.2.wat delete mode 100644 tests/gen/if.3.wasm create mode 100644 tests/gen/if.3.wat delete mode 100644 tests/gen/if.4.wasm create mode 100644 tests/gen/if.4.wat create mode 100644 tests/gen/if.5.wat create mode 100644 tests/gen/if.53.wasm delete mode 100644 tests/gen/if.53.wat create mode 100644 tests/gen/if.54.wasm delete mode 100644 tests/gen/if.54.wat create mode 100644 tests/gen/if.55.wasm delete mode 100644 tests/gen/if.55.wat create mode 100644 tests/gen/if.56.wasm delete mode 100644 tests/gen/if.56.wat create mode 100644 tests/gen/if.57.wasm delete mode 100644 tests/gen/if.57.wat create mode 100644 tests/gen/if.58.wasm delete mode 100644 tests/gen/if.58.wat create mode 100644 tests/gen/if.59.wasm delete mode 100644 tests/gen/if.59.wat delete mode 100644 tests/gen/if.6.wasm create mode 100644 tests/gen/if.6.wat rename tests/gen/{if.1.wasm => if.60.wasm} (57%) delete mode 100644 tests/gen/if.60.wat rename tests/gen/{if.5.wasm => if.61.wasm} (57%) delete mode 100644 tests/gen/if.61.wat create mode 100644 tests/gen/if.62.wasm delete mode 100644 tests/gen/if.62.wat create mode 100644 tests/gen/if.63.wasm create mode 100644 tests/gen/if.64.wasm create mode 100644 tests/gen/if.65.wasm create mode 100644 tests/gen/if.66.wasm create mode 100644 tests/gen/if.67.wasm create mode 100644 tests/gen/if.68.wasm create mode 100644 tests/gen/if.69.wasm delete mode 100644 tests/gen/if.7.wasm create mode 100644 tests/gen/if.7.wat create mode 100644 tests/gen/if.70.wasm create mode 100644 tests/gen/if.71.wasm create mode 100644 tests/gen/if.72.wasm create mode 100644 tests/gen/if.73.wasm create mode 100644 tests/gen/if.74.wasm create mode 100644 tests/gen/if.75.wasm create mode 100644 tests/gen/if.76.wasm create mode 100644 tests/gen/if.77.wasm rename tests/gen/{if.9.wasm => if.78.wasm} (61%) rename tests/gen/{if.11.wasm => if.79.wasm} (68%) delete mode 100644 tests/gen/if.8.wasm create mode 100644 tests/gen/if.8.wat create mode 100644 tests/gen/if.80.wasm create mode 100644 tests/gen/if.81.wasm create mode 100644 tests/gen/if.82.wasm create mode 100644 tests/gen/if.83.wasm create mode 100644 tests/gen/if.84.wasm create mode 100644 tests/gen/if.85.wasm rename tests/gen/{if.10.wasm => if.86.wasm} (61%) create mode 100644 tests/gen/if.87.wasm create mode 100644 tests/gen/if.88.wasm create mode 100644 tests/gen/if.89.wasm create mode 100644 tests/gen/if.9.wat create mode 100644 tests/gen/if.90.wasm create mode 100644 tests/gen/if.91.wasm create mode 100644 tests/gen/if.92.wasm create mode 100644 tests/gen/if.93.wasm create mode 100644 tests/gen/if.94.wasm create mode 100644 tests/gen/if.95.wasm create mode 100644 tests/gen/if.96.wasm create mode 100644 tests/gen/if.97.wasm create mode 100644 tests/gen/if.98.wasm create mode 100644 tests/gen/if.99.wasm diff --git a/tests/gen/assert_if.0.c b/tests/gen/assert_if.0.c index d425547..ada887f 100644 --- a/tests/gen/assert_if.0.c +++ b/tests/gen/assert_if.0.c @@ -32,26 +32,6 @@ void test() { 7u, "singular(4294967286u)" ); - assertEqualU32( - if0_multi(&instance, 0u), - 9u, - "multi(0u)" - ); - assertEqualU32( - if0_multi(&instance, 1u), - 8u, - "multi(1u)" - ); - assertEqualU32( - if0_multi(&instance, 13u), - 8u, - "multi(13u)" - ); - assertEqualU32( - if0_multi(&instance, 4294967291u), - 8u, - "multi(4294967291u)" - ); assertEqualU32( if0_nested(&instance, 0u, 0u), 11u, @@ -403,4 +383,5 @@ void test() { 4294967290u, "effects(0u)" ); + if0_atypicalX2Dcondition(&instance); } diff --git a/tests/gen/if.0.wasm b/tests/gen/if.0.wasm index bf2ae2e645757c26511a6e81c0fab2fe6355ec97..8606f229a71368a6a688678d8a7301df36359ade 100644 GIT binary patch delta 681 zcmZ9J%TmHH6owOS6=J#H#2bo=o3eD_N@nyqn3M*mV`yp`bXfHjWOx#XxA7I+IOEEl zIc-63lbQd^fButm@@amUZ~et}uZ1&N>|>0xX^e0#heJFp5aWA68)434fnp9ymuO%G zjI*(_Caw$=%9wv->N+S}{L`FjLk$XbJaZ-1>Ka~|^Di8U6U<0@Bpr~rBQ zwj601cO(!PgQ#Y|5^F_m&JvGV-e!@lxE$hkyIj{7W6Jr+)g2_v0nex`pK&X!MsHU_ zu48J^a1n?y>QFspQz7SrM=4&d7s_W0HNXa;iEhCZlBt>W64D0ZNWBE%Gf6!M9l#oF zncR1(T7_KbkU_vyLJxt)P%)Okqnd_~T-ZC-V`#tybv6x7U!}ov&I9E!gD%?e0h!*xStV1k3^THe#FKheV#Xv5 zy#eguwp^JRdM&NE&>`0mQyJV}G;;0aU`t<3xp05o9bzIE)LSLO5pE_9seJlI$7X^4 zFLr{3O8@k4*D3ZMi(p3e;Mx1&tm;Ze?;ZC-Q|Q~NO6MJv*kq#D9Kodsa0bdSI5M&@N=b2Za{~Z)&IDrs literal 0 HcmV?d00001 diff --git a/tests/gen/if.104.wat b/tests/gen/if.104.wat new file mode 100644 index 0000000..22432a6 --- /dev/null +++ b/tests/gen/if.104.wat @@ -0,0 +1 @@ +(func (param i32) (result i32) if (param $x i32) end) \ No newline at end of file diff --git a/tests/gen/if.105.wat b/tests/gen/if.105.wat new file mode 100644 index 0000000..de70fc4 --- /dev/null +++ b/tests/gen/if.105.wat @@ -0,0 +1 @@ +(func (param i32) (result i32) (if (param $x i32) (then))) \ No newline at end of file diff --git a/tests/gen/if.106.wat b/tests/gen/if.106.wat new file mode 100644 index 0000000..b4af922 --- /dev/null +++ b/tests/gen/if.106.wat @@ -0,0 +1 @@ +(func i32.const 0 if end $l) \ No newline at end of file diff --git a/tests/gen/if.107.wat b/tests/gen/if.107.wat new file mode 100644 index 0000000..f96b3f6 --- /dev/null +++ b/tests/gen/if.107.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a end $l) \ No newline at end of file diff --git a/tests/gen/if.108.wat b/tests/gen/if.108.wat new file mode 100644 index 0000000..b6fa74e --- /dev/null +++ b/tests/gen/if.108.wat @@ -0,0 +1 @@ +(func i32.const 0 if else $l end) \ No newline at end of file diff --git a/tests/gen/if.109.wat b/tests/gen/if.109.wat new file mode 100644 index 0000000..d372750 --- /dev/null +++ b/tests/gen/if.109.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a else $l end) \ No newline at end of file diff --git a/tests/gen/if.11.wat b/tests/gen/if.11.wat new file mode 100644 index 0000000..e0660e5 --- /dev/null +++ b/tests/gen/if.11.wat @@ -0,0 +1 @@ +(type $sig (func (param i32 i32) (result i32)))(func (i32.const 0) (i32.const 1) (if (type $sig) (param i32) (result i32) (then)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/if.110.wat b/tests/gen/if.110.wat new file mode 100644 index 0000000..9b9439d --- /dev/null +++ b/tests/gen/if.110.wat @@ -0,0 +1 @@ +(func i32.const 0 if else end $l) \ No newline at end of file diff --git a/tests/gen/if.111.wat b/tests/gen/if.111.wat new file mode 100644 index 0000000..1067ffc --- /dev/null +++ b/tests/gen/if.111.wat @@ -0,0 +1 @@ +(func i32.const 0 if else $l end $l) \ No newline at end of file diff --git a/tests/gen/if.112.wat b/tests/gen/if.112.wat new file mode 100644 index 0000000..7982880 --- /dev/null +++ b/tests/gen/if.112.wat @@ -0,0 +1 @@ +(func i32.const 0 if else $l1 end $l2) \ No newline at end of file diff --git a/tests/gen/if.113.wat b/tests/gen/if.113.wat new file mode 100644 index 0000000..cf803aa --- /dev/null +++ b/tests/gen/if.113.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a else end $l) \ No newline at end of file diff --git a/tests/gen/if.114.wat b/tests/gen/if.114.wat new file mode 100644 index 0000000..5c28ca5 --- /dev/null +++ b/tests/gen/if.114.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a else $a end $l) \ No newline at end of file diff --git a/tests/gen/if.115.wat b/tests/gen/if.115.wat new file mode 100644 index 0000000..def7c8a --- /dev/null +++ b/tests/gen/if.115.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a else $l end $l) \ No newline at end of file diff --git a/tests/gen/if.116.wat b/tests/gen/if.116.wat new file mode 100644 index 0000000..4a5ec6e --- /dev/null +++ b/tests/gen/if.116.wat @@ -0,0 +1 @@ +(func (if i32.const 0 (then) (else))) \ No newline at end of file diff --git a/tests/gen/if.12.wasm b/tests/gen/if.12.wasm index 7ff46d8c1c5fa4e1c67b53b6c5aab49e668ae63d..af9266d35949dcc420b0b4562065cd07470694a1 100644 GIT binary patch literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWN>73WMFaN<^}*V;sUDx literal 34 pcmZQbEY4+QU|?WmVN76PU}j=u;NoNCVQ^$*ad2d0b!6n`1^_%E0{H*{ diff --git a/tests/gen/if.13.wasm b/tests/gen/if.13.wasm index a1d8bfd8024c116cdf8d5987e4c4550aaa200cb2..cc5586a6827b87561eb51f77737223a3911e8af6 100644 GIT binary patch delta 15 WcmY$Cn;^o)$;i&&$iU*j%?$t#VgZ@} delta 18 Zcmb1BoFKx>!^p+p$jDO9>d3&&4FDGW0x19h diff --git a/tests/gen/if.14.wasm b/tests/gen/if.14.wasm index 3c843597043fb42d78b0f07296f4fceec588ccf6..d21e5ffc708559abdb6299cfd8410a9d94fe20d5 100644 GIT binary patch literal 30 lcmZQbEY4+QU|?WmWlUgTtYcdtWM^<>U~%B)1^_m~0_6Yz literal 32 ncmZQbEY4+QU|?WmWlUgTtY>CoWZ>dvdtWM^<>U~%B)1^_m)0^|Sy literal 30 lcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dtWM^<>WU1%o1^_pd1110f diff --git a/tests/gen/if.16.wasm b/tests/gen/if.16.wasm index 60e3519a08129b9cbc25887eb0955d1eb6a42b5f..0a2b0435c586e2adfa861bcfe472f28b3efa81d8 100644 GIT binary patch literal 30 lcmZQbEY4+QU|?WmWlUgTtYKziWZ>dtWM^<>U~%B)1^_mq0^CoWZ>dvdtWM^<>U~%B)1^_m~0_6Yz literal 34 pcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dudtWM^<>U~%B)1^_m)0^|Sy literal 33 ncmZQbEY4+QU|?WmWlUgTtY>CoWZ>dqdtWM^<>U~%B)1^_m~0_6Yz diff --git a/tests/gen/if.2.wat b/tests/gen/if.2.wat new file mode 100644 index 0000000..06bed21 --- /dev/null +++ b/tests/gen/if.2.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (if (param i32) (type $sig) (result i32) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.20.wasm b/tests/gen/if.20.wasm index dccdf66acfe4ec4e774b78b43f9b39bd37c6acc1..0a2b0435c586e2adfa861bcfe472f28b3efa81d8 100644 GIT binary patch literal 30 lcmZQbEY4+QU|?WmWlUgTtYKziWZ>dtWM^<>U~%B)1^_mq0^CoWZ>ds6;ad2eh<^}*V>jJC* literal 35 qcmZQbEY4+QU|?WmWlUgTtY>CoWZ>ds6;ad2eh<^}*V>jJC* literal 35 qcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dsCoWZ)8I6lQQ_WT|&zWOV^b0l^1*Zf*c+ngsa( diff --git a/tests/gen/if.24.wasm b/tests/gen/if.24.wasm index df42f941ecc866717c8ee54aca20f8e74b694f96..7ff46d8c1c5fa4e1c67b53b6c5aab49e668ae63d 100644 GIT binary patch literal 34 pcmZQbEY4+QU|?WmVN76PU}j=u;NoNCVQ^$*ad2d0b!6n`1^_%E0{H*{ literal 37 rcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8DCoWZ)8DCoWZ)8F6ku>| literal 35 qcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dsa%AM@1^`PG1BUCoWZ>ds!^p+p$jDO9>d3&&4FDH<0x$po delta 22 bcmY#XoggA8z{tno$jDO910-1;8M(OuA<6=a diff --git a/tests/gen/if.3.wasm b/tests/gen/if.3.wasm deleted file mode 100644 index 3c28b6b12099e3f9cb60127431e7c1cfd89e1cbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30 lcmZQbEY4+QU|?WmWlUgTtYv0mWZ>dtWM^<>U~%B)1^_m)0^|Sy diff --git a/tests/gen/if.3.wat b/tests/gen/if.3.wat new file mode 100644 index 0000000..16666b7 --- /dev/null +++ b/tests/gen/if.3.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (if (param i32) (result i32) (type $sig) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.30.wasm b/tests/gen/if.30.wasm index ab49c4669bb9bba1227c81a80d5b7bf9523f47cd..3c843597043fb42d78b0f07296f4fceec588ccf6 100644 GIT binary patch delta 17 YcmY#Ym>|N#&B)2%$jDOf$iU4F02NvSCjbBd delta 22 ccmY#ToggA8z{tno$jDOf$jHhAWN>o>03sd&iU0rr diff --git a/tests/gen/if.31.wasm b/tests/gen/if.31.wasm index f64ebb830fb5d19b4c55c030f972dcd57f33c99f..c517634eab7b36fd4483ba05b3d24011b8bc991d 100644 GIT binary patch delta 15 WcmY$Bn;^o)$;i&&$jDO9%?$t$Zvo!` delta 23 ccmb1Bn;;@2$jHy&$jDO9$OEKU9T~Z~0VBEsjQ{`u diff --git a/tests/gen/if.32.wasm b/tests/gen/if.32.wasm index b4c76d6ec6e9b5ab619126cfeed24d9e274ddabe..ee769566094a5ea3a398e3e2934f858a08d2a041 100644 GIT binary patch literal 36 rcmZQbEY4+QU|?WmV@zORs;_5eVr1arW8`6QWMpArb!2d4;^qbbQt|`4 literal 38 qcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8HCoWZ)8F6ku>WMpCB<^}*jSpz5l literal 39 scmZQbEY4+QU|?WmWlUgTtY>CoWZ)8F6ku>CoWZ>dvCoWZ>duCoWZ>duUO76%pwZfJRk!9 diff --git a/tests/gen/if.39.wasm b/tests/gen/if.39.wasm index 2749cb52a8c9e528026df78b561c2594c8c9f36c..dfb1749bbbb6dd8d4f52ac5457444252a81b0200 100644 GIT binary patch literal 33 ncmZQbEY4+QU|?WmWlUgTtY>CoWZ>dq49Ru%_tM+R;wZU9vY1M2_) diff --git a/tests/gen/if.4.wasm b/tests/gen/if.4.wasm deleted file mode 100644 index 0a2b0435c586e2adfa861bcfe472f28b3efa81d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30 lcmZQbEY4+QU|?WmWlUgTtYKziWZ>dtWM^<>U~%B)1^_mq0^oo09GyoyZ`_I literal 35 qcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpHF*a$s@b=3$WH<^}*hIRfMW diff --git a/tests/gen/if.41.wasm b/tests/gen/if.41.wasm index 48b97862f9a9a66fd25cff946e5adafb3c371978..6698a3f2a41ea2ddea4d3d2f8defe20796691fa1 100644 GIT binary patch literal 37 qcmZQbEY4+QU|?WmV@zORs;_5eVr1arXXIsYWMpA*1VUCuZf*cq9s|4p literal 37 scmZQbEY4+QU|?WmVN76PU}j=u;1XoyXK-X-a$s@bc4XvbkmBYB07ahzD*ylh diff --git a/tests/gen/if.42.wasm b/tests/gen/if.42.wasm index 79cee182a54f4fc77a313b4e5c084e17af57522d..53f3ae63c657f4058558038ffa02c9089ff12389 100644 GIT binary patch literal 34 pcmZQbEY4+QU|?WmV@zORs;_5eVr1arVdP?PWMpArWM$;$1^`L(12q5u literal 36 rcmZQbEY4+QU|?WmVN76PU}j=u;1XcuV{l|(a$s@b=3`)x;^qbbK^X$* diff --git a/tests/gen/if.43.wasm b/tests/gen/if.43.wasm index f1fb50692e9b7df020815aaf199189597376ddd0..dccdf66acfe4ec4e774b78b43f9b39bd37c6acc1 100644 GIT binary patch literal 35 qcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dsCoWZ>dsCoWZ>dsCsVqoOrXX0RBao`qUl;UP#P+;H&0BBkR?*IS* diff --git a/tests/gen/if.46.wasm b/tests/gen/if.46.wasm index db22aa7f7a4d1296cb767ff49687967cce083fe0..27d4471287f473403a9ea634660eb7b8bcca48d1 100644 GIT binary patch literal 38 rcmZQbEY4+QU|?WmV@zORs;_5eVr1YFVB}+PWMlziR!2rhMs98ZTfGDU literal 63 zcmV~$!3lsc5JkcFH!Bhs1P@+3S&Hc-79a#tz_#uT@B9R)T30GNlw!yi4M}wsjS$;u O&Q0uC`V)-DP+*Ya1^_)B0}22D diff --git a/tests/gen/if.48.wasm b/tests/gen/if.48.wasm index e2599e106cb1d1d80df34e02c5992d7572dda2c8..d883e6b9495bc280761aeb14b9aaa66484233c6c 100644 GIT binary patch literal 36 pcmZQbEY4+QU|?WmV@zORs;_5eVr1arW8`6QWMlziR!2r|ZU9p(1G@kK literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAVq~mmao|>Bkm3daHs=E8 diff --git a/tests/gen/if.49.wasm b/tests/gen/if.49.wasm index f59e211368abefd589e9889570062251a99391f4..82df12b9efe8553a8b02279e161ef8386dff3ed1 100644 GIT binary patch literal 40 tcmZQbEY4+QU|?WmV@zORs;_5eVr1YFViaI-WN>6;0b*81Mn^_&ZUAM71V#V= literal 40 vcmZQbEY4+QU|?WmVN76PU}j=uU}IyfXLMxX=Hg-GVqkILR$)+Pkm3daQCS0I diff --git a/tests/gen/if.5.wat b/tests/gen/if.5.wat new file mode 100644 index 0000000..bdb8440 --- /dev/null +++ b/tests/gen/if.5.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (if (result i32) (param i32) (type $sig) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.50.wasm b/tests/gen/if.50.wasm index 2f7f719c029b5bfe4a651928b13750a541956862..606b4a121b9b1bf17d09012b9c75ec54e977035f 100644 GIT binary patch literal 40 tcmZQbEY4+QU|?WmV@zORs;_5eVr1YFViaI-WN>6;0b)l+R!2r|ZUAM#1V#V= literal 35 ocmZQbEY4+QU|?WmVN76PU}j=uU}XmKxwsfP7+4&*9T=pz0XT~Si2wiq diff --git a/tests/gen/if.51.wasm b/tests/gen/if.51.wasm index 61107b78a182fccde738872f92774f89a3c81cb4..c1d26493322d442a9e8efdbed8b622e3ddabc200 100644 GIT binary patch literal 38 rcmZQbEY4+QU|?WmV@zORs;_5eVr1YFVB}+PWN>6;0b*81Ms98ZTxA3R literal 36 pcmZQbEY4+QU|?WmVN76PU}j=uU}XmKxwsiQ8CV>+HJBKrxB)tq0(AfY diff --git a/tests/gen/if.52.wasm b/tests/gen/if.52.wasm index 2f6a47c85fe2f76dfe0b823bdca4ffa44b738705..773703d9b38c06f55ad404ed967a67ac7790aa6e 100644 GIT binary patch literal 37 scmZQbEY4+QU|?WmWlUgTtY>CoWZ)8DCoWZ)8DCoWZ)8F6ku>CoWZ)8I6lQQ_WT|&zWOV^b0l^1*Zf*c+ngsa( literal 0 HcmV?d00001 diff --git a/tests/gen/if.55.wat b/tests/gen/if.55.wat deleted file mode 100644 index 2bbe4f3..0000000 --- a/tests/gen/if.55.wat +++ /dev/null @@ -1 +0,0 @@ -(func if else $l end) \ No newline at end of file diff --git a/tests/gen/if.56.wasm b/tests/gen/if.56.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cf2e3fa11a9ee02969dce1bf7eac3cbd49db651b GIT binary patch literal 40 rcmZQbEY4+QU|?WmV@zORs;_5eVr1YFViaI-WMlzi5M*^^CoWZ)8DCoWZ)8DCoWZ)8F6ku>dtWM^<>U~%B)1^_m~0_6Yz diff --git a/tests/gen/if.6.wat b/tests/gen/if.6.wat new file mode 100644 index 0000000..de86a2d --- /dev/null +++ b/tests/gen/if.6.wat @@ -0,0 +1 @@ +(func (i32.const 0) (if (result i32) (param i32) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.1.wasm b/tests/gen/if.60.wasm similarity index 57% rename from tests/gen/if.1.wasm rename to tests/gen/if.60.wasm index cc5586a6827b87561eb51f77737223a3911e8af6..d43da66ce878e5d1baee36f33fff7ab0aacddc5f 100644 GIT binary patch delta 20 bcmb1Bo*=@{$H>Fr$jDO9!@%mu$juD^8*2hS delta 15 WcmY$En;^o)$;i&&$iU*j%?$t#fB~EU diff --git a/tests/gen/if.60.wat b/tests/gen/if.60.wat deleted file mode 100644 index 721311f..0000000 --- a/tests/gen/if.60.wat +++ /dev/null @@ -1 +0,0 @@ -(func if $a else end $l) \ No newline at end of file diff --git a/tests/gen/if.5.wasm b/tests/gen/if.61.wasm similarity index 57% rename from tests/gen/if.5.wasm rename to tests/gen/if.61.wasm index cc5586a6827b87561eb51f77737223a3911e8af6..c6353c674e2283d5a3f084ada5584d9ee0918dfb 100644 GIT binary patch delta 20 bcmb1Bo*=@{$H>Fr$jDOf$jHjWz|9Q+91Q|K delta 15 WcmY$En;^o)$;i&&$iU*j%?$t#fB~EU diff --git a/tests/gen/if.61.wat b/tests/gen/if.61.wat deleted file mode 100644 index eac1ee0..0000000 --- a/tests/gen/if.61.wat +++ /dev/null @@ -1 +0,0 @@ -(func if $a else $a end $l) \ No newline at end of file diff --git a/tests/gen/if.62.wasm b/tests/gen/if.62.wasm new file mode 100644 index 0000000000000000000000000000000000000000..72553dedac39236fa41d709e0ac8f1e86d684155 GIT binary patch literal 38 tcmZQbEY4+QU|?WmV@zORs;_5eVr1YFVB}+PWMpCBVPJJ+bY$e_1^`*u1Iqva literal 0 HcmV?d00001 diff --git a/tests/gen/if.62.wat b/tests/gen/if.62.wat deleted file mode 100644 index 9b82ae1..0000000 --- a/tests/gen/if.62.wat +++ /dev/null @@ -1 +0,0 @@ -(func if $a else $l end $l) \ No newline at end of file diff --git a/tests/gen/if.63.wasm b/tests/gen/if.63.wasm new file mode 100644 index 0000000000000000000000000000000000000000..eacf95ee9c378d6fc1e311e04e43cfe9e4a988b4 GIT binary patch literal 38 rcmZQbEY4+QU|?WmV@zORs;_5eVr1YFVB}+PWMlziM@Cj225xQuTOI?; literal 0 HcmV?d00001 diff --git a/tests/gen/if.64.wasm b/tests/gen/if.64.wasm new file mode 100644 index 0000000000000000000000000000000000000000..dc586ea157c6b129bacbd2933451ebcdb9cbbd5e GIT binary patch literal 37 qcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8DCoWZ)8DCoWZ)8HCoWZ)8HdtWM^<>U~%B)1^_m)0^|Sy diff --git a/tests/gen/if.7.wat b/tests/gen/if.7.wat new file mode 100644 index 0000000..5f9235f --- /dev/null +++ b/tests/gen/if.7.wat @@ -0,0 +1 @@ +(func (i32.const 0) (i32.const 1) (if (param $x i32) (then (drop)) (else (drop)))) \ No newline at end of file diff --git a/tests/gen/if.70.wasm b/tests/gen/if.70.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f581c3e4d767021d9d2a090fb2255debaf37d3c4 GIT binary patch literal 43 ucmZQbEY4+QU|?WmV@zORs;_5eVr1YFWfW#`WMpArCoWZ)8F6ku>CoWZ)8F6ku>6;ad2eh<^}*V>jJC* diff --git a/tests/gen/if.11.wasm b/tests/gen/if.79.wasm similarity index 68% rename from tests/gen/if.11.wasm rename to tests/gen/if.79.wasm index f16045b309f6485b70aab4a0bc239ba43fb3376d..1350d1b7e31dc0b200f98d1a8de3cb1ce49b21e5 100644 GIT binary patch delta 13 UcmY#Tm>|Kyz~sQ|Ky$l}22$jHqN01bKplK=n! diff --git a/tests/gen/if.8.wasm b/tests/gen/if.8.wasm deleted file mode 100644 index 0a2b0435c586e2adfa861bcfe472f28b3efa81d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30 lcmZQbEY4+QU|?WmWlUgTtYKziWZ>dtWM^<>U~%B)1^_mq0^UO76%pwZfJRk!9 literal 0 HcmV?d00001 diff --git a/tests/gen/if.82.wasm b/tests/gen/if.82.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2749cb52a8c9e528026df78b561c2594c8c9f36c GIT binary patch literal 40 tcmZQbEY4+QU|?WmVN76PU}j=u;1XdJVsHdPmU>49Ru%_tM+R;wZU9vY1M2_) literal 0 HcmV?d00001 diff --git a/tests/gen/if.83.wasm b/tests/gen/if.83.wasm new file mode 100644 index 0000000000000000000000000000000000000000..28af597c9cae330f9dc77a59a7f55bdd35b3d15a GIT binary patch literal 35 qcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpHF*a$s@b=3$WH<^}*hIRfMW literal 0 HcmV?d00001 diff --git a/tests/gen/if.84.wasm b/tests/gen/if.84.wasm new file mode 100644 index 0000000000000000000000000000000000000000..48b97862f9a9a66fd25cff946e5adafb3c371978 GIT binary patch literal 37 scmZQbEY4+QU|?WmVN76PU}j=u;1XoyXK-X-a$s@bc4XvbkmBYB07ahzD*ylh literal 0 HcmV?d00001 diff --git a/tests/gen/if.85.wasm b/tests/gen/if.85.wasm new file mode 100644 index 0000000000000000000000000000000000000000..79cee182a54f4fc77a313b4e5c084e17af57522d GIT binary patch literal 36 rcmZQbEY4+QU|?WmVN76PU}j=u;1XcuV{l|(a$s@b=3`)x;^qbbK^X$* literal 0 HcmV?d00001 diff --git a/tests/gen/if.10.wasm b/tests/gen/if.86.wasm similarity index 61% rename from tests/gen/if.10.wasm rename to tests/gen/if.86.wasm index 53c2a0f792be80cb88206978c71e945d5b291e6c..f1fb50692e9b7df020815aaf199189597376ddd0 100644 GIT binary patch literal 29 kcmZQbEY4+QU|?WmVN76PU}j=u;NoOtXJB#Q=9l6I04$6GO#lD@ literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWN>6;ad2eh<^}*V>jJC* diff --git a/tests/gen/if.87.wasm b/tests/gen/if.87.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ece64f60ab1eeb23dd0a49236fbcb5aaa7c6b9f2 GIT binary patch literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;NoTEW?*sPc4Ty9l9u8I063Nc<^TWy literal 0 HcmV?d00001 diff --git a/tests/gen/if.88.wasm b/tests/gen/if.88.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0ccea05bb091fa85cbf52c0b1d3c2ab0e51c95fb GIT binary patch literal 41 wcmZQbEY4+QU|?Y6WJ+LQNMNjItY>CsVqoOrXX0RBao`qUl;UP#P+;H&0BBkR?*IS* literal 0 HcmV?d00001 diff --git a/tests/gen/if.89.wasm b/tests/gen/if.89.wasm new file mode 100644 index 0000000000000000000000000000000000000000..db22aa7f7a4d1296cb767ff49687967cce083fe0 GIT binary patch literal 63 zcmV~$!3lsc5JkcFH!Bhs1P@+3S&Hc-79a#tz_#uT@B9R)T30GNlw!yi4M}wsjS$;u O&Q0uC`V)-DP+*Ya1^_)B0}22D literal 0 HcmV?d00001 diff --git a/tests/gen/if.91.wasm b/tests/gen/if.91.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e2599e106cb1d1d80df34e02c5992d7572dda2c8 GIT binary patch literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAVq~mmao|>Bkm3daHs=E8 literal 0 HcmV?d00001 diff --git a/tests/gen/if.92.wasm b/tests/gen/if.92.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f59e211368abefd589e9889570062251a99391f4 GIT binary patch literal 40 vcmZQbEY4+QU|?WmVN76PU}j=uU}IyfXLMxX=Hg-GVqkILR$)+Pkm3daQCS0I literal 0 HcmV?d00001 diff --git a/tests/gen/if.93.wasm b/tests/gen/if.93.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2f7f719c029b5bfe4a651928b13750a541956862 GIT binary patch literal 35 ocmZQbEY4+QU|?WmVN76PU}j=uU}XmKxwsfP7+4&*9T=pz0XT~Si2wiq literal 0 HcmV?d00001 diff --git a/tests/gen/if.94.wasm b/tests/gen/if.94.wasm new file mode 100644 index 0000000000000000000000000000000000000000..61107b78a182fccde738872f92774f89a3c81cb4 GIT binary patch literal 36 pcmZQbEY4+QU|?WmVN76PU}j=uU}XmKxwsiQ8CV>+HJBKrxB)tq0(AfY literal 0 HcmV?d00001 diff --git a/tests/gen/if.95.wasm b/tests/gen/if.95.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2f6a47c85fe2f76dfe0b823bdca4ffa44b738705 GIT binary patch literal 37 scmZQbEY4+QU|?WmVN76PU}j=uU}a`xVC3Rqdv Date: Sun, 13 Oct 2024 12:24:14 -0700 Subject: [PATCH 05/11] update tests --- tests/exports.wast | 48 +++- tests/func.wast | 361 +++++++++++++++++++++++-- tests/gen/assert_exports.11.c | 26 ++ tests/gen/assert_exports.17.c | 11 - tests/gen/assert_exports.18.c | 11 - tests/gen/assert_exports.19.c | 11 - tests/gen/assert_exports.26.c | 11 + tests/gen/assert_exports.27.c | 11 + tests/gen/assert_exports.28.c | 11 + tests/gen/assert_exports.32.c | 11 - tests/gen/assert_exports.33.c | 11 - tests/gen/assert_exports.34.c | 11 - tests/gen/assert_exports.35.c | 11 - tests/gen/assert_exports.36.c | 11 - tests/gen/assert_exports.46.c | 11 + tests/gen/assert_exports.47.c | 11 + tests/gen/assert_exports.48.c | 11 + tests/gen/assert_exports.49.c | 11 + tests/gen/assert_exports.50.c | 11 + tests/gen/assert_exports.51.c | 11 - tests/gen/assert_exports.52.c | 11 - tests/gen/assert_exports.53.c | 11 - tests/gen/assert_exports.54.c | 11 - tests/gen/assert_exports.55.c | 11 - tests/gen/assert_exports.56.c | 11 - tests/gen/assert_exports.57.c | 11 - tests/gen/assert_exports.65.c | 11 + tests/gen/assert_exports.66.c | 11 + tests/gen/assert_exports.67.c | 11 + tests/gen/assert_exports.68.c | 11 + tests/gen/assert_exports.69.c | 11 + tests/gen/assert_exports.70.c | 11 + tests/gen/assert_exports.71.c | 11 + tests/gen/assert_func.3.c | 15 - tests/gen/assert_func.4.c | 26 ++ tests/gen/assert_func.5.c | 15 + tests/gen/exports.11.wasm | Bin 31 -> 42 bytes tests/gen/exports.12.wasm | Bin 35 -> 15 bytes tests/gen/exports.13.wasm | Bin 39 -> 31 bytes tests/gen/exports.14.wasm | Bin 43 -> 46 bytes tests/gen/exports.15.wasm | Bin 41 -> 35 bytes tests/gen/exports.16.wasm | Bin 40 -> 39 bytes tests/gen/exports.17.wasm | Bin 23 -> 43 bytes tests/gen/exports.18.wasm | Bin 27 -> 41 bytes tests/gen/exports.19.wasm | Bin 32 -> 40 bytes tests/gen/exports.21.wasm | Bin 23 -> 27 bytes tests/gen/exports.22.wasm | Bin 23 -> 32 bytes tests/gen/exports.26.wasm | Bin 23 -> 23 bytes tests/gen/exports.27.wasm | Bin 27 -> 23 bytes tests/gen/exports.28.wasm | Bin 32 -> 23 bytes tests/gen/exports.29.wasm | Bin 43 -> 15 bytes tests/gen/exports.30.wasm | Bin 33 -> 23 bytes tests/gen/exports.31.wasm | Bin 32 -> 41 bytes tests/gen/exports.32.wasm | Bin 21 -> 27 bytes tests/gen/exports.33.wasm | Bin 25 -> 32 bytes tests/gen/exports.34.wasm | Bin 21 -> 43 bytes tests/gen/exports.35.wasm | Bin 22 -> 33 bytes tests/gen/exports.36.wasm | Bin 21 -> 32 bytes tests/gen/exports.37.wasm | Bin 22 -> 21 bytes tests/gen/exports.38.wasm | Bin 21 -> 25 bytes tests/gen/exports.39.wasm | Bin 22 -> 21 bytes tests/gen/exports.40.wasm | Bin 21 -> 22 bytes tests/gen/exports.41.wasm | Bin 22 -> 21 bytes tests/gen/exports.42.wasm | Bin 21 -> 22 bytes tests/gen/exports.43.wasm | Bin 22 -> 21 bytes tests/gen/exports.44.wasm | Bin 21 -> 22 bytes tests/gen/exports.45.wasm | Bin 22 -> 21 bytes tests/gen/exports.46.wasm | Bin 21 -> 22 bytes tests/gen/exports.47.wasm | Bin 25 -> 21 bytes tests/gen/exports.48.wasm | Bin 41 -> 22 bytes tests/gen/exports.49.wasm | Bin 33 -> 21 bytes tests/gen/exports.50.wasm | Bin 30 -> 22 bytes tests/gen/exports.51.wasm | Bin 20 -> 15 bytes tests/gen/exports.52.wasm | Bin 24 -> 21 bytes tests/gen/exports.53.wasm | Bin 20 -> 38 bytes tests/gen/exports.54.wasm | Bin 21 -> 25 bytes tests/gen/exports.55.wasm | Bin 20 -> 41 bytes tests/gen/exports.56.wasm | Bin 21 -> 33 bytes tests/gen/exports.57.wasm | Bin 20 -> 30 bytes tests/gen/exports.58.wasm | Bin 21 -> 20 bytes tests/gen/exports.59.wasm | Bin 20 -> 24 bytes tests/gen/exports.60.wasm | Bin 21 -> 20 bytes tests/gen/exports.61.wasm | Bin 20 -> 21 bytes tests/gen/exports.62.wasm | Bin 21 -> 20 bytes tests/gen/exports.63.wasm | Bin 20 -> 21 bytes tests/gen/exports.64.wasm | Bin 21 -> 20 bytes tests/gen/exports.65.wasm | Bin 20 -> 21 bytes tests/gen/exports.66.wasm | Bin 24 -> 20 bytes tests/gen/exports.67.wasm | Bin 40 -> 21 bytes tests/gen/exports.68.wasm | Bin 32 -> 20 bytes tests/gen/exports.69.wasm | Bin 30 -> 21 bytes tests/gen/exports.70.wasm | Bin 0 -> 20 bytes tests/gen/exports.71.wasm | Bin 0 -> 21 bytes tests/gen/exports.72.wasm | Bin 0 -> 15 bytes tests/gen/exports.73.wasm | Bin 0 -> 20 bytes tests/gen/exports.74.wasm | Bin 0 -> 38 bytes tests/gen/exports.75.wasm | Bin 0 -> 24 bytes tests/gen/exports.76.wasm | Bin 0 -> 40 bytes tests/gen/exports.77.wasm | Bin 0 -> 32 bytes tests/gen/exports.78.wasm | Bin 0 -> 30 bytes tests/gen/exports.json | 130 +++++---- tests/gen/func.0.wasm | Bin 1700 -> 1678 bytes tests/gen/func.10.wat | 2 +- tests/gen/func.11.wat | 2 +- tests/gen/func.12.wat | 2 +- tests/gen/func.13.wat | 2 +- tests/gen/func.14.wasm | Bin 29 -> 0 bytes tests/gen/func.14.wat | 1 + tests/gen/func.15.wasm | Bin 29 -> 0 bytes tests/gen/func.15.wat | 1 + tests/gen/func.16.wasm | Bin 31 -> 29 bytes tests/gen/func.17.wasm | Bin 28 -> 29 bytes tests/gen/func.18.wasm | Bin 28 -> 31 bytes tests/gen/func.19.wasm | Bin 29 -> 28 bytes tests/gen/func.20.wasm | Bin 27 -> 28 bytes tests/gen/func.21.wasm | Bin 27 -> 29 bytes tests/gen/func.26.wasm | Bin 26 -> 26 bytes tests/gen/func.27.wasm | Bin 26 -> 26 bytes tests/gen/func.28.wasm | Bin 30 -> 27 bytes tests/gen/func.29.wasm | Bin 26 -> 26 bytes tests/gen/func.3.wat | 1 + tests/gen/func.30.wasm | Bin 27 -> 28 bytes tests/gen/func.31.wasm | Bin 28 -> 30 bytes tests/gen/func.32.wasm | Bin 28 -> 31 bytes tests/gen/func.33.wasm | Bin 29 -> 35 bytes tests/gen/func.34.wasm | Bin 30 -> 26 bytes tests/gen/func.35.wasm | Bin 31 -> 27 bytes tests/gen/func.36.wasm | Bin 27 -> 27 bytes tests/gen/func.37.wasm | Bin 32 -> 28 bytes tests/gen/func.38.wasm | Bin 29 -> 28 bytes tests/gen/func.39.wasm | Bin 31 -> 29 bytes tests/gen/func.4.wasm | Bin 0 -> 77 bytes tests/gen/func.4.wat | 1 - tests/gen/func.40.wasm | Bin 33 -> 28 bytes tests/gen/func.41.wasm | Bin 34 -> 31 bytes tests/gen/func.42.wasm | Bin 35 -> 31 bytes tests/gen/func.43.wasm | Bin 36 -> 29 bytes tests/gen/func.44.wasm | Bin 0 -> 30 bytes tests/gen/func.45.wasm | Bin 0 -> 30 bytes tests/gen/func.46.wasm | Bin 0 -> 33 bytes tests/gen/func.47.wasm | Bin 0 -> 31 bytes tests/gen/func.48.wasm | Bin 0 -> 34 bytes tests/gen/func.49.wasm | Bin 0 -> 27 bytes tests/gen/{func.3.wasm => func.5.wasm} | Bin tests/gen/func.5.wat | 1 - tests/gen/func.50.wasm | Bin 0 -> 28 bytes tests/gen/func.51.wasm | Bin 0 -> 32 bytes tests/gen/func.52.wasm | Bin 0 -> 30 bytes tests/gen/func.53.wasm | Bin 0 -> 29 bytes tests/gen/func.54.wasm | Bin 0 -> 32 bytes tests/gen/func.55.wasm | Bin 0 -> 31 bytes tests/gen/func.56.wasm | Bin 0 -> 34 bytes tests/gen/func.57.wasm | Bin 0 -> 33 bytes tests/gen/func.58.wasm | Bin 0 -> 34 bytes tests/gen/func.59.wasm | Bin 0 -> 37 bytes tests/gen/func.6.wat | 2 +- tests/gen/func.60.wasm | Bin 0 -> 35 bytes tests/gen/func.61.wasm | Bin 0 -> 38 bytes tests/gen/func.62.wasm | Bin 0 -> 36 bytes tests/gen/func.63.wasm | Bin 0 -> 39 bytes tests/gen/{func.44.wat => func.64.wat} | 0 tests/gen/{func.45.wat => func.65.wat} | 0 tests/gen/{func.46.wat => func.66.wat} | 0 tests/gen/{func.47.wat => func.67.wat} | 0 tests/gen/{func.48.wat => func.68.wat} | 0 tests/gen/{func.49.wat => func.69.wat} | 0 tests/gen/func.7.wat | 2 +- tests/gen/func.70.wat | 1 + tests/gen/func.71.wat | 1 + tests/gen/func.72.wat | 1 + tests/gen/func.73.wat | 1 + tests/gen/func.74.wat | 1 + tests/gen/func.75.wat | 1 + tests/gen/func.8.wat | 2 +- tests/gen/func.9.wat | 2 +- tests/gen/func.json | 273 ++++++++++--------- 176 files changed, 858 insertions(+), 393 deletions(-) create mode 100644 tests/gen/assert_exports.11.c delete mode 100644 tests/gen/assert_exports.17.c delete mode 100644 tests/gen/assert_exports.18.c delete mode 100644 tests/gen/assert_exports.19.c create mode 100644 tests/gen/assert_exports.26.c create mode 100644 tests/gen/assert_exports.27.c create mode 100644 tests/gen/assert_exports.28.c delete mode 100644 tests/gen/assert_exports.32.c delete mode 100644 tests/gen/assert_exports.33.c delete mode 100644 tests/gen/assert_exports.34.c delete mode 100644 tests/gen/assert_exports.35.c delete mode 100644 tests/gen/assert_exports.36.c create mode 100644 tests/gen/assert_exports.46.c create mode 100644 tests/gen/assert_exports.47.c create mode 100644 tests/gen/assert_exports.48.c create mode 100644 tests/gen/assert_exports.49.c create mode 100644 tests/gen/assert_exports.50.c delete mode 100644 tests/gen/assert_exports.51.c delete mode 100644 tests/gen/assert_exports.52.c delete mode 100644 tests/gen/assert_exports.53.c delete mode 100644 tests/gen/assert_exports.54.c delete mode 100644 tests/gen/assert_exports.55.c delete mode 100644 tests/gen/assert_exports.56.c delete mode 100644 tests/gen/assert_exports.57.c create mode 100644 tests/gen/assert_exports.65.c create mode 100644 tests/gen/assert_exports.66.c create mode 100644 tests/gen/assert_exports.67.c create mode 100644 tests/gen/assert_exports.68.c create mode 100644 tests/gen/assert_exports.69.c create mode 100644 tests/gen/assert_exports.70.c create mode 100644 tests/gen/assert_exports.71.c delete mode 100644 tests/gen/assert_func.3.c create mode 100644 tests/gen/assert_func.4.c create mode 100644 tests/gen/assert_func.5.c create mode 100644 tests/gen/exports.70.wasm create mode 100644 tests/gen/exports.71.wasm create mode 100644 tests/gen/exports.72.wasm create mode 100644 tests/gen/exports.73.wasm create mode 100644 tests/gen/exports.74.wasm create mode 100644 tests/gen/exports.75.wasm create mode 100644 tests/gen/exports.76.wasm create mode 100644 tests/gen/exports.77.wasm create mode 100644 tests/gen/exports.78.wasm delete mode 100644 tests/gen/func.14.wasm create mode 100644 tests/gen/func.14.wat delete mode 100644 tests/gen/func.15.wasm create mode 100644 tests/gen/func.15.wat create mode 100644 tests/gen/func.3.wat create mode 100644 tests/gen/func.4.wasm delete mode 100644 tests/gen/func.4.wat create mode 100644 tests/gen/func.44.wasm create mode 100644 tests/gen/func.45.wasm create mode 100644 tests/gen/func.46.wasm create mode 100644 tests/gen/func.47.wasm create mode 100644 tests/gen/func.48.wasm create mode 100644 tests/gen/func.49.wasm rename tests/gen/{func.3.wasm => func.5.wasm} (100%) delete mode 100644 tests/gen/func.5.wat create mode 100644 tests/gen/func.50.wasm create mode 100644 tests/gen/func.51.wasm create mode 100644 tests/gen/func.52.wasm create mode 100644 tests/gen/func.53.wasm create mode 100644 tests/gen/func.54.wasm create mode 100644 tests/gen/func.55.wasm create mode 100644 tests/gen/func.56.wasm create mode 100644 tests/gen/func.57.wasm create mode 100644 tests/gen/func.58.wasm create mode 100644 tests/gen/func.59.wasm create mode 100644 tests/gen/func.60.wasm create mode 100644 tests/gen/func.61.wasm create mode 100644 tests/gen/func.62.wasm create mode 100644 tests/gen/func.63.wasm rename tests/gen/{func.44.wat => func.64.wat} (100%) rename tests/gen/{func.45.wat => func.65.wat} (100%) rename tests/gen/{func.46.wat => func.66.wat} (100%) rename tests/gen/{func.47.wat => func.67.wat} (100%) rename tests/gen/{func.48.wat => func.68.wat} (100%) rename tests/gen/{func.49.wat => func.69.wat} (100%) create mode 100644 tests/gen/func.70.wat create mode 100644 tests/gen/func.71.wat create mode 100644 tests/gen/func.72.wat create mode 100644 tests/gen/func.73.wat create mode 100644 tests/gen/func.74.wat create mode 100644 tests/gen/func.75.wat diff --git a/tests/exports.wast b/tests/exports.wast index e8d62ca..694ae98 100644 --- a/tests/exports.wast +++ b/tests/exports.wast @@ -13,6 +13,7 @@ (module (export "a" (func 0)) (func)) (module (export "a" (func $a)) (func $a)) +;; W2C2: unsupported test setup ;; (module $Func ;; (export "e" (func $f)) ;; (func $f (param $n i32) (result i32) @@ -25,10 +26,28 @@ ;; (module $Other1) ;; (assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) +(module + (type (;0;) (func (result i32))) + (func (;0;) (type 0) (result i32) i32.const 42) + (export "a" (func 0)) + (export "b" (func 0)) + (export "c" (func 0))) +(assert_return (invoke "a") (i32.const 42)) +(assert_return (invoke "b") (i32.const 42)) +(assert_return (invoke "c") (i32.const 42)) + +(assert_invalid + (module (export "a" (func 0))) + "unknown function" +) (assert_invalid (module (func) (export "a" (func 1))) "unknown function" ) +(assert_invalid + (module (import "spectest" "print_i32" (func (param i32))) (export "a" (func 1))) + "unknown function" +) (assert_invalid (module (func) (export "a" (func 0)) (export "a" (func 0))) "duplicate export name" @@ -64,6 +83,7 @@ (module (export "a" (global 0)) (global i32 (i32.const 0))) (module (export "a" (global $a)) (global $a i32 (i32.const 0))) +;; W2C2: unsupported test setup ;; (module $Global ;; (export "e" (global $g)) ;; (global $g i32 (i32.const 42)) @@ -74,10 +94,18 @@ ;; (module $Other2) ;; (assert_return (get $Global "e") (i32.const 42)) +(assert_invalid + (module (export "a" (global 0))) + "unknown global" +) (assert_invalid (module (global i32 (i32.const 0)) (export "a" (global 1))) "unknown global" ) +(assert_invalid + (module (import "spectest" "global_i32" (global i32)) (export "a" (global 1))) + "unknown global" +) (assert_invalid (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 0))) "duplicate export name" @@ -104,7 +132,7 @@ (module (table 0 funcref) (export "a" (table 0))) (module (table 0 funcref) (export "a" (table 0)) (export "b" (table 0))) -;; No multiple tables yet. +;; W2C2: No support for multiple tables ;; (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "b" (table 1))) (module (table (export "a") 0 funcref)) @@ -122,15 +150,23 @@ (; TODO: access table ;) +(assert_invalid + (module (export "a" (table 0))) + "unknown table" +) (assert_invalid (module (table 0 funcref) (export "a" (table 1))) "unknown table" ) +(assert_invalid + (module (import "spectest" "table" (table 10 20 funcref)) (export "a" (table 1))) + "unknown table" +) (assert_invalid (module (table 0 funcref) (export "a" (table 0)) (export "a" (table 0))) "duplicate export name" ) -;; No multiple tables yet. +;; W2C2: No support for multiple tables ;; (assert_invalid ;; (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "a" (table 1))) ;; "duplicate export name" @@ -171,10 +207,18 @@ (; TODO: access memory ;) +(assert_invalid + (module (export "a" (memory 0))) + "unknown memory" +) (assert_invalid (module (memory 0) (export "a" (memory 1))) "unknown memory" ) +(assert_invalid + (module (import "spectest" "memory" (memory 1 2)) (export "a" (memory 1))) + "unknown memory" +) (assert_invalid (module (memory 0) (export "a" (memory 0)) (export "a" (memory 0))) "duplicate export name" diff --git a/tests/func.wast b/tests/func.wast index a6b05f5..ac0f6d5 100644 --- a/tests/func.wast +++ b/tests/func.wast @@ -28,7 +28,14 @@ (func (param i32) (param f64)) (func (param i32 f32) (param $x i64) (param) (param i32 f64)) + (func (result)) + ;; W2C2: No support for functions with multiple return values + ;; (func (result) (result)) (func (result i32) (unreachable)) + ;; W2C2: No support for functions with multiple return values + ;; (func (result i32 f64 f32) (unreachable)) + ;; (func (result i32) (result f64) (unreachable)) + ;; (func (result i32 f32) (result i64) (result) (result i32 f64) (unreachable)) (type $sig-1 (func)) (type $sig-2 (func (result i32))) @@ -48,12 +55,13 @@ (func (type $sig)) (func (type $forward)) ;; forward reference - (func $complex - (param i32 f32) (param $x i64) (param) (param i32) - (result) (result i32) (result) - (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) - (unreachable) (unreachable) - ) + ;; W2C2: No support for functions with multiple return values + ;; (func $complex + ;; (param i32 f32) (param $x i64) (param) (param i32) + ;; (result) (result i32) (result) (result i64 i32) + ;; (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) + ;; (unreachable) (unreachable) + ;; ) (func $complex-sig (type $sig) (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) @@ -104,7 +112,7 @@ (local.get 4) ) - ;; Typing of result + ;; Typing of results (func (export "empty")) (func (export "value-void") (call $dummy)) @@ -112,28 +120,59 @@ (func (export "value-i64") (result i64) (i64.const 7777)) (func (export "value-f32") (result f32) (f32.const 77.7)) (func (export "value-f64") (result f64) (f64.const 77.77)) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "value-i32-f64") (result i32 f64) (i32.const 77) (f64.const 7)) + ;; (func (export "value-i32-i32-i32") (result i32 i32 i32) + ;; (i32.const 1) (i32.const 2) (i32.const 3) + ;; ) (func (export "value-block-void") (block (call $dummy) (call $dummy))) (func (export "value-block-i32") (result i32) (block (result i32) (call $dummy) (i32.const 77)) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "value-block-i32-i64") (result i32 i64) + ;; (block (result i32 i64) (call $dummy) (i32.const 1) (i64.const 2)) + ;; ) (func (export "return-empty") (return)) (func (export "return-i32") (result i32) (return (i32.const 78))) (func (export "return-i64") (result i64) (return (i64.const 7878))) (func (export "return-f32") (result f32) (return (f32.const 78.7))) (func (export "return-f64") (result f64) (return (f64.const 78.78))) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "return-i32-f64") (result i32 f64) + ;; (return (i32.const 78) (f64.const 78.78)) + ;; ) + ;; (func (export "return-i32-i32-i32") (result i32 i32 i32) + ;; (return (i32.const 1) (i32.const 2) (i32.const 3)) + ;; ) (func (export "return-block-i32") (result i32) (return (block (result i32) (call $dummy) (i32.const 77))) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "return-block-i32-i64") (result i32 i64) + ;; (return (block (result i32 i64) (call $dummy) (i32.const 1) (i64.const 2))) + ;; ) (func (export "break-empty") (br 0)) (func (export "break-i32") (result i32) (br 0 (i32.const 79))) (func (export "break-i64") (result i64) (br 0 (i64.const 7979))) (func (export "break-f32") (result f32) (br 0 (f32.const 79.9))) (func (export "break-f64") (result f64) (br 0 (f64.const 79.79))) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-i32-f64") (result i32 f64) + ;; (br 0 (i32.const 79) (f64.const 79.79)) + ;; ) + ;; (func (export "break-i32-i32-i32") (result i32 i32 i32) + ;; (br 0 (i32.const 1) (i32.const 2) (i32.const 3)) + ;; ) (func (export "break-block-i32") (result i32) (br 0 (block (result i32) (call $dummy) (i32.const 77))) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-block-i32-i64") (result i32 i64) + ;; (br 0 (block (result i32 i64) (call $dummy) (i32.const 1) (i64.const 2))) + ;; ) (func (export "break-br_if-empty") (param i32) (br_if 0 (local.get 0)) @@ -141,6 +180,11 @@ (func (export "break-br_if-num") (param i32) (result i32) (drop (br_if 0 (i32.const 50) (local.get 0))) (i32.const 51) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-br_if-num-num") (param i32) (result i32 i64) + ;; (drop (drop (br_if 0 (i32.const 50) (i64.const 51) (local.get 0)))) + ;; (i32.const 51) (i64.const 52) + ;; ) (func (export "break-br_table-empty") (param i32) (br_table 0 0 0 (local.get 0)) @@ -148,6 +192,11 @@ (func (export "break-br_table-num") (param i32) (result i32) (br_table 0 0 (i32.const 50) (local.get 0)) (i32.const 51) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-br_table-num-num") (param i32) (result i32 i64) + ;; (br_table 0 0 (i32.const 50) (i64.const 51) (local.get 0)) + ;; (i32.const 51) (i64.const 52) + ;; ) (func (export "break-br_table-nested-empty") (param i32) (block (br_table 0 1 0 (local.get 0))) ) @@ -159,6 +208,39 @@ (i32.const 2) ) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-br_table-nested-num-num") (param i32) (result i32 i32) + ;; (i32.add + ;; (block (result i32 i32) + ;; (br_table 0 1 0 (i32.const 50) (i32.const 51) (local.get 0)) + ;; (i32.const 51) (i32.const -3) + ;; ) + ;; ) + ;; (i32.const 52) + ;; ) + ;; + ;; ;; Large signatures + ;; + ;; (func (export "large-sig") + ;; (param i32 i64 f32 f32 i32 f64 f32 i32 i32 i32 f32 f64 f64 f64 i32 i32 f32) + ;; (result f64 f32 i32 i32 i32 i64 f32 i32 i32 f32 f64 f64 i32 f32 i32 f64) + ;; (local.get 5) + ;; (local.get 2) + ;; (local.get 0) + ;; (local.get 8) + ;; (local.get 7) + ;; (local.get 1) + ;; (local.get 3) + ;; (local.get 9) + ;; (local.get 4) + ;; (local.get 6) + ;; (local.get 13) + ;; (local.get 11) + ;; (local.get 15) + ;; (local.get 16) + ;; (local.get 14) + ;; (local.get 12) + ;; ) ;; Default initialization of locals @@ -231,27 +313,55 @@ (assert_return (invoke "value-i64") (i64.const 7777)) (assert_return (invoke "value-f32") (f32.const 77.7)) (assert_return (invoke "value-f64") (f64.const 77.77)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "value-i32-f64") (i32.const 77) (f64.const 7)) +;; (assert_return (invoke "value-i32-i32-i32") +;; (i32.const 1) (i32.const 2) (i32.const 3) +;; ) (assert_return (invoke "value-block-void")) (assert_return (invoke "value-block-i32") (i32.const 77)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "value-block-i32-i64") (i32.const 1) (i64.const 2)) (assert_return (invoke "return-empty")) (assert_return (invoke "return-i32") (i32.const 78)) (assert_return (invoke "return-i64") (i64.const 7878)) (assert_return (invoke "return-f32") (f32.const 78.7)) (assert_return (invoke "return-f64") (f64.const 78.78)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "return-i32-f64") (i32.const 78) (f64.const 78.78)) +;; (assert_return (invoke "return-i32-i32-i32") +;; (i32.const 1) (i32.const 2) (i32.const 3) +;; ) (assert_return (invoke "return-block-i32") (i32.const 77)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "return-block-i32-i64") (i32.const 1) (i64.const 2)) (assert_return (invoke "break-empty")) (assert_return (invoke "break-i32") (i32.const 79)) (assert_return (invoke "break-i64") (i64.const 7979)) (assert_return (invoke "break-f32") (f32.const 79.9)) (assert_return (invoke "break-f64") (f64.const 79.79)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-i32-f64") (i32.const 79) (f64.const 79.79)) +;; (assert_return (invoke "break-i32-i32-i32") +;; (i32.const 1) (i32.const 2) (i32.const 3) +;; ) (assert_return (invoke "break-block-i32") (i32.const 77)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-block-i32-i64") (i32.const 1) (i64.const 2)) (assert_return (invoke "break-br_if-empty" (i32.const 0))) (assert_return (invoke "break-br_if-empty" (i32.const 2))) (assert_return (invoke "break-br_if-num" (i32.const 0)) (i32.const 51)) (assert_return (invoke "break-br_if-num" (i32.const 1)) (i32.const 50)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-br_if-num-num" (i32.const 0)) +;; (i32.const 51) (i64.const 52) +;; ) +;; (assert_return (invoke "break-br_if-num-num" (i32.const 1)) +;; (i32.const 50) (i64.const 51) +;; ) (assert_return (invoke "break-br_table-empty" (i32.const 0))) (assert_return (invoke "break-br_table-empty" (i32.const 1))) @@ -261,6 +371,19 @@ (assert_return (invoke "break-br_table-num" (i32.const 1)) (i32.const 50)) (assert_return (invoke "break-br_table-num" (i32.const 10)) (i32.const 50)) (assert_return (invoke "break-br_table-num" (i32.const -100)) (i32.const 50)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-br_table-num-num" (i32.const 0)) +;; (i32.const 50) (i64.const 51) +;; ) +;; (assert_return (invoke "break-br_table-num-num" (i32.const 1)) +;; (i32.const 50) (i64.const 51) +;; ) +;; (assert_return (invoke "break-br_table-num-num" (i32.const 10)) +;; (i32.const 50) (i64.const 51) +;; ) +;; (assert_return (invoke "break-br_table-num-num" (i32.const -100)) +;; (i32.const 50) (i64.const 51) +;; ) (assert_return (invoke "break-br_table-nested-empty" (i32.const 0))) (assert_return (invoke "break-br_table-nested-empty" (i32.const 1))) (assert_return (invoke "break-br_table-nested-empty" (i32.const 3))) @@ -277,6 +400,37 @@ (assert_return (invoke "break-br_table-nested-num" (i32.const -3)) (i32.const 52) ) +;; W2C2: No support for functions with multiple return values +;; (assert_return +;; (invoke "break-br_table-nested-num-num" (i32.const 0)) +;; (i32.const 101) (i32.const 52) +;; ) +;; (assert_return +;; (invoke "break-br_table-nested-num-num" (i32.const 1)) +;; (i32.const 50) (i32.const 51) +;; ) +;; (assert_return +;; (invoke "break-br_table-nested-num-num" (i32.const 2)) +;; (i32.const 101) (i32.const 52) +;; ) +;; (assert_return +;; (invoke "break-br_table-nested-num-num" (i32.const -3)) +;; (i32.const 101) (i32.const 52) +;; ) +;; +;; (assert_return +;; (invoke "large-sig" +;; (i32.const 0) (i64.const 1) (f32.const 2) (f32.const 3) +;; (i32.const 4) (f64.const 5) (f32.const 6) (i32.const 7) +;; (i32.const 8) (i32.const 9) (f32.const 10) (f64.const 11) +;; (f64.const 12) (f64.const 13) (i32.const 14) (i32.const 15) +;; (f32.const 16) +;; ) +;; (f64.const 5) (f32.const 2) (i32.const 0) (i32.const 8) +;; (i32.const 7) (i64.const 1) (f32.const 3) (i32.const 9) +;; (i32.const 4) (f32.const 6) (f64.const 13) (f64.const 11) +;; (i32.const 15) (f32.const 16) (i32.const 14) (f64.const 12) +;; ) (assert_return (invoke "init-local-i32") (i32.const 0)) (assert_return (invoke "init-local-i64") (i64.const 0)) @@ -311,6 +465,46 @@ "unknown type" ) +(assert_malformed + (module quote + "(func $f (result f64) (f64.const 0))" ;; adds implicit type definition + "(func $g (param i32))" ;; reuses explicit type definition + "(func $h (result f64) (f64.const 1))" ;; reuses implicit type definition + "(type $t (func (param i32)))" + + "(func (type 2) (param i32))" ;; does not exist + ) + "unknown type" +) + +(module + (type $proc (func (result i32))) + (type $sig (func (param i32) (result i32))) + + (func (export "f") (type $sig) + (local $var i32) + (local.get $var) + ) + + (func $g (type $sig) + (local $var i32) + (local.get $var) + ) + (func (export "g") (type $sig) + (call $g (local.get 0)) + ) + + (func (export "p") (type $proc) + (local $var i32) + (local.set 0 (i32.const 42)) + (local.get $var) + ) +) + +(assert_return (invoke "f" (i32.const 42)) (i32.const 0)) +(assert_return (invoke "g" (i32.const 42)) (i32.const 0)) +(assert_return (invoke "p") (i32.const 42)) + (module (type $sig (func)) @@ -489,19 +683,6 @@ ;; Invalid typing of result -(assert_invalid - (module (func $type-multiple-result (result i32 i32) (unreachable))) - "invalid result arity" -) -(assert_invalid - (module - (type (func (result i32 i32))) - (func $type-multiple-result (type 0) (unreachable)) - ) - "invalid result arity" -) - - (assert_invalid (module (func $type-empty-i32 (result i32))) "type mismatch" @@ -518,6 +699,10 @@ (module (func $type-empty-f64 (result f64))) "type mismatch" ) +(assert_invalid + (module (func $type-empty-f64-i32 (result f64 i32))) + "type mismatch" +) (assert_invalid (module (func $type-value-void-vs-num (result i32) @@ -525,18 +710,42 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-value-void-vs-nums (result i32 i32) + (nop) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-num-vs-void (i32.const 0) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-nums-vs-void + (i32.const 0) (i64.const 0) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-num-vs-num (result i32) (f32.const 0) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-num-vs-nums (result f32 f32) + (f32.const 0) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-nums-vs-num (result f32) + (f32.const 0) (f32.const 0) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-last-empty-vs-num (result i32) @@ -544,18 +753,36 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-return-last-empty-vs-nums (result i32 i32) + (return) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-last-void-vs-num (result i32) (return (nop)) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-last-void-vs-nums (result i32 i64) + (return (nop)) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-last-num-vs-num (result i32) (return (i64.const 0)) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-last-num-vs-nums (result i64 i64) + (return (i64.const 0)) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-empty-vs-num (result i32) @@ -563,24 +790,54 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-return-empty-vs-nums (result i32 i32) + (return) (i32.const 1) (i32.const 2) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-return-partial-vs-nums (result i32 i32) + (i32.const 1) (return) (i32.const 2) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-void-vs-num (result i32) (return (nop)) (i32.const 1) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-void-vs-nums (result i32 i32) + (return (nop)) (i32.const 1) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-num-vs-num (result i32) (return (i64.const 1)) (i32.const 1) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-num-vs-nums (result i32 i32) + (return (i64.const 1)) (i32.const 1) (i32.const 2) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-first-num-vs-num (result i32) (return (i64.const 1)) (return (i32.const 1)) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-first-num-vs-nums (result i32 i32) + (return (i32.const 1)) (return (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-last-void-vs-num (result i32) @@ -588,24 +845,48 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-last-void-vs-nums (result i32 i32) + (br 0) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-last-num-vs-num (result i32) (br 0 (f32.const 0)) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-last-num-vs-nums (result i32 i32) + (br 0 (i32.const 0)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-void-vs-num (result i32) (br 0) (i32.const 1) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-void-vs-nums (result i32 i32) + (br 0) (i32.const 1) (i32.const 2) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-num-vs-num (result i32) (br 0 (i64.const 1)) (i32.const 1) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-num-vs-nums (result i32 i32) + (br 0 (i32.const 1)) (i32.const 1) (i32.const 2) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-first-num-vs-num (result i32) (br 0 (i64.const 1)) (br 0 (i32.const 1)) @@ -619,18 +900,36 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-empty-vs-nums (result i32 i32) + (block (br 1)) (br 0 (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-void-vs-num (result i32) (block (br 1 (nop))) (br 0 (i32.const 1)) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-void-vs-nums (result i32 i32) + (block (br 1 (nop))) (br 0 (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-num-vs-num (result i32) (block (br 1 (i64.const 1))) (br 0 (i32.const 1)) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-num-vs-nums (result i32 i32) + (block (result i32) (br 1 (i32.const 1))) (br 0 (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) ;; Syntax errors @@ -659,3 +958,25 @@ (module quote "(func (result i32) (param i32) (local.get 0))") "unexpected token" ) + +;; Duplicate name errors + +(assert_malformed (module quote + "(func $foo)" + "(func $foo)") + "duplicate func") +(assert_malformed (module quote + "(import \"\" \"\" (func $foo))" + "(func $foo)") + "duplicate func") +(assert_malformed (module quote + "(import \"\" \"\" (func $foo))" + "(import \"\" \"\" (func $foo))") + "duplicate func") + +(assert_malformed (module quote "(func (param $foo i32) (param $foo i32))") + "duplicate local") +(assert_malformed (module quote "(func (param $foo i32) (local $foo i32))") + "duplicate local") +(assert_malformed (module quote "(func (local $foo i32) (local $foo i32))") + "duplicate local") diff --git a/tests/gen/assert_exports.11.c b/tests/gen/assert_exports.11.c new file mode 100644 index 0000000..f1053c2 --- /dev/null +++ b/tests/gen/assert_exports.11.c @@ -0,0 +1,26 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.11.h" + +void test() { + exports11Instance instance; + exports11Instantiate(&instance, resolveTestImports); + printStart("exports.11.wasm"); + assertEqualU32( + exports11_a(&instance), + 42u, + "a()" + ); + assertEqualU32( + exports11_b(&instance), + 42u, + "b()" + ); + assertEqualU32( + exports11_c(&instance), + 42u, + "c()" + ); +} diff --git a/tests/gen/assert_exports.17.c b/tests/gen/assert_exports.17.c deleted file mode 100644 index 230b458..0000000 --- a/tests/gen/assert_exports.17.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.17.h" - -void test() { - exports17Instance instance; - exports17Instantiate(&instance, resolveTestImports); - printStart("exports.17.wasm"); -} diff --git a/tests/gen/assert_exports.18.c b/tests/gen/assert_exports.18.c deleted file mode 100644 index e79f6de..0000000 --- a/tests/gen/assert_exports.18.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.18.h" - -void test() { - exports18Instance instance; - exports18Instantiate(&instance, resolveTestImports); - printStart("exports.18.wasm"); -} diff --git a/tests/gen/assert_exports.19.c b/tests/gen/assert_exports.19.c deleted file mode 100644 index 4ef9c7a..0000000 --- a/tests/gen/assert_exports.19.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.19.h" - -void test() { - exports19Instance instance; - exports19Instantiate(&instance, resolveTestImports); - printStart("exports.19.wasm"); -} diff --git a/tests/gen/assert_exports.26.c b/tests/gen/assert_exports.26.c new file mode 100644 index 0000000..b4e8b65 --- /dev/null +++ b/tests/gen/assert_exports.26.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.26.h" + +void test() { + exports26Instance instance; + exports26Instantiate(&instance, resolveTestImports); + printStart("exports.26.wasm"); +} diff --git a/tests/gen/assert_exports.27.c b/tests/gen/assert_exports.27.c new file mode 100644 index 0000000..882afd4 --- /dev/null +++ b/tests/gen/assert_exports.27.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.27.h" + +void test() { + exports27Instance instance; + exports27Instantiate(&instance, resolveTestImports); + printStart("exports.27.wasm"); +} diff --git a/tests/gen/assert_exports.28.c b/tests/gen/assert_exports.28.c new file mode 100644 index 0000000..edbdad4 --- /dev/null +++ b/tests/gen/assert_exports.28.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.28.h" + +void test() { + exports28Instance instance; + exports28Instantiate(&instance, resolveTestImports); + printStart("exports.28.wasm"); +} diff --git a/tests/gen/assert_exports.32.c b/tests/gen/assert_exports.32.c deleted file mode 100644 index 5e2ecac..0000000 --- a/tests/gen/assert_exports.32.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.32.h" - -void test() { - exports32Instance instance; - exports32Instantiate(&instance, resolveTestImports); - printStart("exports.32.wasm"); -} diff --git a/tests/gen/assert_exports.33.c b/tests/gen/assert_exports.33.c deleted file mode 100644 index f14e609..0000000 --- a/tests/gen/assert_exports.33.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.33.h" - -void test() { - exports33Instance instance; - exports33Instantiate(&instance, resolveTestImports); - printStart("exports.33.wasm"); -} diff --git a/tests/gen/assert_exports.34.c b/tests/gen/assert_exports.34.c deleted file mode 100644 index 1b189d9..0000000 --- a/tests/gen/assert_exports.34.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.34.h" - -void test() { - exports34Instance instance; - exports34Instantiate(&instance, resolveTestImports); - printStart("exports.34.wasm"); -} diff --git a/tests/gen/assert_exports.35.c b/tests/gen/assert_exports.35.c deleted file mode 100644 index 98e46b0..0000000 --- a/tests/gen/assert_exports.35.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.35.h" - -void test() { - exports35Instance instance; - exports35Instantiate(&instance, resolveTestImports); - printStart("exports.35.wasm"); -} diff --git a/tests/gen/assert_exports.36.c b/tests/gen/assert_exports.36.c deleted file mode 100644 index db20c66..0000000 --- a/tests/gen/assert_exports.36.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.36.h" - -void test() { - exports36Instance instance; - exports36Instantiate(&instance, resolveTestImports); - printStart("exports.36.wasm"); -} diff --git a/tests/gen/assert_exports.46.c b/tests/gen/assert_exports.46.c new file mode 100644 index 0000000..7543a9e --- /dev/null +++ b/tests/gen/assert_exports.46.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.46.h" + +void test() { + exports46Instance instance; + exports46Instantiate(&instance, resolveTestImports); + printStart("exports.46.wasm"); +} diff --git a/tests/gen/assert_exports.47.c b/tests/gen/assert_exports.47.c new file mode 100644 index 0000000..547b592 --- /dev/null +++ b/tests/gen/assert_exports.47.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.47.h" + +void test() { + exports47Instance instance; + exports47Instantiate(&instance, resolveTestImports); + printStart("exports.47.wasm"); +} diff --git a/tests/gen/assert_exports.48.c b/tests/gen/assert_exports.48.c new file mode 100644 index 0000000..23572d8 --- /dev/null +++ b/tests/gen/assert_exports.48.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.48.h" + +void test() { + exports48Instance instance; + exports48Instantiate(&instance, resolveTestImports); + printStart("exports.48.wasm"); +} diff --git a/tests/gen/assert_exports.49.c b/tests/gen/assert_exports.49.c new file mode 100644 index 0000000..380882e --- /dev/null +++ b/tests/gen/assert_exports.49.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.49.h" + +void test() { + exports49Instance instance; + exports49Instantiate(&instance, resolveTestImports); + printStart("exports.49.wasm"); +} diff --git a/tests/gen/assert_exports.50.c b/tests/gen/assert_exports.50.c new file mode 100644 index 0000000..29e0083 --- /dev/null +++ b/tests/gen/assert_exports.50.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.50.h" + +void test() { + exports50Instance instance; + exports50Instantiate(&instance, resolveTestImports); + printStart("exports.50.wasm"); +} diff --git a/tests/gen/assert_exports.51.c b/tests/gen/assert_exports.51.c deleted file mode 100644 index 12491de..0000000 --- a/tests/gen/assert_exports.51.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.51.h" - -void test() { - exports51Instance instance; - exports51Instantiate(&instance, resolveTestImports); - printStart("exports.51.wasm"); -} diff --git a/tests/gen/assert_exports.52.c b/tests/gen/assert_exports.52.c deleted file mode 100644 index 59cb689..0000000 --- a/tests/gen/assert_exports.52.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.52.h" - -void test() { - exports52Instance instance; - exports52Instantiate(&instance, resolveTestImports); - printStart("exports.52.wasm"); -} diff --git a/tests/gen/assert_exports.53.c b/tests/gen/assert_exports.53.c deleted file mode 100644 index 0799c27..0000000 --- a/tests/gen/assert_exports.53.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.53.h" - -void test() { - exports53Instance instance; - exports53Instantiate(&instance, resolveTestImports); - printStart("exports.53.wasm"); -} diff --git a/tests/gen/assert_exports.54.c b/tests/gen/assert_exports.54.c deleted file mode 100644 index 89193bf..0000000 --- a/tests/gen/assert_exports.54.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.54.h" - -void test() { - exports54Instance instance; - exports54Instantiate(&instance, resolveTestImports); - printStart("exports.54.wasm"); -} diff --git a/tests/gen/assert_exports.55.c b/tests/gen/assert_exports.55.c deleted file mode 100644 index 3fd47ec..0000000 --- a/tests/gen/assert_exports.55.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.55.h" - -void test() { - exports55Instance instance; - exports55Instantiate(&instance, resolveTestImports); - printStart("exports.55.wasm"); -} diff --git a/tests/gen/assert_exports.56.c b/tests/gen/assert_exports.56.c deleted file mode 100644 index f888bab..0000000 --- a/tests/gen/assert_exports.56.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.56.h" - -void test() { - exports56Instance instance; - exports56Instantiate(&instance, resolveTestImports); - printStart("exports.56.wasm"); -} diff --git a/tests/gen/assert_exports.57.c b/tests/gen/assert_exports.57.c deleted file mode 100644 index d4c29a8..0000000 --- a/tests/gen/assert_exports.57.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.57.h" - -void test() { - exports57Instance instance; - exports57Instantiate(&instance, resolveTestImports); - printStart("exports.57.wasm"); -} diff --git a/tests/gen/assert_exports.65.c b/tests/gen/assert_exports.65.c new file mode 100644 index 0000000..ed8df58 --- /dev/null +++ b/tests/gen/assert_exports.65.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.65.h" + +void test() { + exports65Instance instance; + exports65Instantiate(&instance, resolveTestImports); + printStart("exports.65.wasm"); +} diff --git a/tests/gen/assert_exports.66.c b/tests/gen/assert_exports.66.c new file mode 100644 index 0000000..e48fff2 --- /dev/null +++ b/tests/gen/assert_exports.66.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.66.h" + +void test() { + exports66Instance instance; + exports66Instantiate(&instance, resolveTestImports); + printStart("exports.66.wasm"); +} diff --git a/tests/gen/assert_exports.67.c b/tests/gen/assert_exports.67.c new file mode 100644 index 0000000..58faa73 --- /dev/null +++ b/tests/gen/assert_exports.67.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.67.h" + +void test() { + exports67Instance instance; + exports67Instantiate(&instance, resolveTestImports); + printStart("exports.67.wasm"); +} diff --git a/tests/gen/assert_exports.68.c b/tests/gen/assert_exports.68.c new file mode 100644 index 0000000..8088a44 --- /dev/null +++ b/tests/gen/assert_exports.68.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.68.h" + +void test() { + exports68Instance instance; + exports68Instantiate(&instance, resolveTestImports); + printStart("exports.68.wasm"); +} diff --git a/tests/gen/assert_exports.69.c b/tests/gen/assert_exports.69.c new file mode 100644 index 0000000..848b6ea --- /dev/null +++ b/tests/gen/assert_exports.69.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.69.h" + +void test() { + exports69Instance instance; + exports69Instantiate(&instance, resolveTestImports); + printStart("exports.69.wasm"); +} diff --git a/tests/gen/assert_exports.70.c b/tests/gen/assert_exports.70.c new file mode 100644 index 0000000..1426e9d --- /dev/null +++ b/tests/gen/assert_exports.70.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.70.h" + +void test() { + exports70Instance instance; + exports70Instantiate(&instance, resolveTestImports); + printStart("exports.70.wasm"); +} diff --git a/tests/gen/assert_exports.71.c b/tests/gen/assert_exports.71.c new file mode 100644 index 0000000..b40d571 --- /dev/null +++ b/tests/gen/assert_exports.71.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.71.h" + +void test() { + exports71Instance instance; + exports71Instantiate(&instance, resolveTestImports); + printStart("exports.71.wasm"); +} diff --git a/tests/gen/assert_func.3.c b/tests/gen/assert_func.3.c deleted file mode 100644 index 6c195c5..0000000 --- a/tests/gen/assert_func.3.c +++ /dev/null @@ -1,15 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_func.3.h" - -void test() { - func3Instance instance; - func3Instantiate(&instance, resolveTestImports); - printStart("func.3.wasm"); - func3_signatureX2DexplicitX2Dreused(&instance); - func3_signatureX2DimplicitX2Dreused(&instance); - func3_signatureX2DexplicitX2Dduplicate(&instance); - func3_signatureX2DimplicitX2Dduplicate(&instance); -} diff --git a/tests/gen/assert_func.4.c b/tests/gen/assert_func.4.c new file mode 100644 index 0000000..8162a40 --- /dev/null +++ b/tests/gen/assert_func.4.c @@ -0,0 +1,26 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_func.4.h" + +void test() { + func4Instance instance; + func4Instantiate(&instance, resolveTestImports); + printStart("func.4.wasm"); + assertEqualU32( + func4_f(&instance, 42u), + 0u, + "f(42u)" + ); + assertEqualU32( + func4_g(&instance, 42u), + 0u, + "g(42u)" + ); + assertEqualU32( + func4_p(&instance), + 42u, + "p()" + ); +} diff --git a/tests/gen/assert_func.5.c b/tests/gen/assert_func.5.c new file mode 100644 index 0000000..5a68f54 --- /dev/null +++ b/tests/gen/assert_func.5.c @@ -0,0 +1,15 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_func.5.h" + +void test() { + func5Instance instance; + func5Instantiate(&instance, resolveTestImports); + printStart("func.5.wasm"); + func5_signatureX2DexplicitX2Dreused(&instance); + func5_signatureX2DimplicitX2Dreused(&instance); + func5_signatureX2DexplicitX2Dduplicate(&instance); + func5_signatureX2DimplicitX2Dduplicate(&instance); +} diff --git a/tests/gen/exports.11.wasm b/tests/gen/exports.11.wasm index bdbe2fe562620717d8eb930cb07e796d52fe7244..f7ea7e891146df116443f8cfd8fd019333e3dd81 100644 GIT binary patch literal 42 ucmZQbEY4+QU|?WmWlUgTtY>CoWMJoIW=sT%Bmr?U0|OTuBMXD07B>K5r~~@| literal 31 mcmZQbEY4+QU|?WmVN76PU}j=uU}t4yOk`l>Vqs)r;06FOasoR5 diff --git a/tests/gen/exports.12.wasm b/tests/gen/exports.12.wasm index 5ff35c41a012a9e2f0b417a2b3056cfda5097879..1ea99a77f011d9957e9b6d918b7dcc3eb3044d66 100644 GIT binary patch literal 15 WcmZQbEY4+QU|?WpWn@fbU;qFS)&a5r literal 35 ncmZQbEY4+QU|?WmVN76PU}j=uVCQ6FOaux5F&7IX69YE@J*5Jn diff --git a/tests/gen/exports.13.wasm b/tests/gen/exports.13.wasm index 526226b5217403f52024f1c112c622d5f517d030..bdbe2fe562620717d8eb930cb07e796d52fe7244 100644 GIT binary patch literal 31 mcmZQbEY4+QU|?WmVN76PU}j=uU}t4yOk`l>Vqs)r;06FOasoR5 literal 39 rcmZQbEY4+QU|?WmVN76PU}k1wU|{EDVoU^zBr-5^u`@9-a03wlN1y_= diff --git a/tests/gen/exports.14.wasm b/tests/gen/exports.14.wasm index fd54b55af2b7c9c5e1be6c740f52a94e5f121492..4670c7c1f352d28d52b56b06a13098aa63f1f02f 100644 GIT binary patch literal 46 zcmZQbEY4+QU|?WmWlUhKXJ8UzfDM0J&b;+{@sAz$kh|py+YBS}Jbb6679$hvAd;kCd diff --git a/tests/gen/exports.15.wasm b/tests/gen/exports.15.wasm index 4abb7ed142f1095ad6d8c75db39935cfb38387a9..5ff35c41a012a9e2f0b417a2b3056cfda5097879 100644 GIT binary patch literal 35 ncmZQbEY4+QU|?WmVN76PU}j=uVCQ6FOaux5F&7IX69YE@J*5Jn literal 41 tcmWN_!3h8%3;@C17&z1>O##Az{e#YPsIvu37qpN}fB1S>uS-T6%nMOa0~-JU diff --git a/tests/gen/exports.16.wasm b/tests/gen/exports.16.wasm index 775694a62d870205699bf82dda471db8a56b211e..526226b5217403f52024f1c112c622d5f517d030 100644 GIT binary patch literal 39 rcmZQbEY4+QU|?WmVN76PU}k1wU|{EDVoU^zBr-5^u`@9-a03wlN1y_= literal 40 scmZQbEY4+QU|?WmVN76PU}j=uU}XmK**TdQ6M>?MOblEsj7$vN07l^gtN;K2 diff --git a/tests/gen/exports.17.wasm b/tests/gen/exports.17.wasm index a2f90fe1130c8556d4a774932ad9fc3d753a85d6..fd54b55af2b7c9c5e1be6c740f52a94e5f121492 100644 GIT binary patch literal 43 wcmWN`!4Uuu3`N2B6BC1~bRq>fDM0J&b;+{@sAz$kh|py+YBS}Jbb6679$hvAd;kCd literal 23 ecmZQbEY4+QU|?WlW2|RzWZ-6JWn@fbW&i*sg#wKL diff --git a/tests/gen/exports.18.wasm b/tests/gen/exports.18.wasm index f1bae6aa2461d7e46b66fb2f05a8136f367c1af1..4abb7ed142f1095ad6d8c75db39935cfb38387a9 100644 GIT binary patch literal 41 tcmWN_!3h8%3;@C17&z1>O##Az{e#YPsIvu37qpN}fB1S>uS-T6%nMOa0~-JU literal 27 icmZQbEY4+QU|?WlW2|RzWZ-7!WMWKYW?)QWW&i*&8UpwL diff --git a/tests/gen/exports.19.wasm b/tests/gen/exports.19.wasm index 3c2410be16b0f8e9b19e9f2ff2b3f14be1e95c81..775694a62d870205699bf82dda471db8a56b211e 100644 GIT binary patch literal 40 scmZQbEY4+QU|?WmVN76PU}j=uU}XmK**TdQ6M>?MOblEsj7$vN07l^gtN;K2 literal 32 jcmZQbEY4+QU|?Y5W~yg!WZ(u9?3_%DiOdX)Nz9A@NG$`( diff --git a/tests/gen/exports.21.wasm b/tests/gen/exports.21.wasm index a2f90fe1130c8556d4a774932ad9fc3d753a85d6..f1bae6aa2461d7e46b66fb2f05a8136f367c1af1 100644 GIT binary patch literal 27 icmZQbEY4+QU|?WlW2|RzWZ-7!WMWKYW?)QWW&i*&8UpwL literal 23 ecmZQbEY4+QU|?WlW2|RzWZ-6JWn@fbW&i*sg#wKL diff --git a/tests/gen/exports.22.wasm b/tests/gen/exports.22.wasm index a2f90fe1130c8556d4a774932ad9fc3d753a85d6..3c2410be16b0f8e9b19e9f2ff2b3f14be1e95c81 100644 GIT binary patch literal 32 jcmZQbEY4+QU|?Y5W~yg!WZ(u9?3_%DiOdX)Nz9A@NG$`( literal 23 ecmZQbEY4+QU|?WlW2|RzWZ-6JWn@fbW&i*sg#wKL diff --git a/tests/gen/exports.26.wasm b/tests/gen/exports.26.wasm index 38002d4a35cc1b0c4d1f200c4f9509319b317358..a2f90fe1130c8556d4a774932ad9fc3d753a85d6 100644 GIT binary patch delta 6 NcmWd^pCHD_000Ar0M-Bi delta 6 NcmWd^pCHD_2mk|!0M`Hj diff --git a/tests/gen/exports.27.wasm b/tests/gen/exports.27.wasm index 545e7b7de6ac6789fd490517fbca88d7ea3ef65a..a2f90fe1130c8556d4a774932ad9fc3d753a85d6 100644 GIT binary patch literal 23 ecmZQbEY4+QU|?WlW2|RzWZ-6JWn@fbW&i*sg#wKL literal 27 fcmZQbEY4+QU|?WlW2|RzWZ-7!WMWKYW&mLTF&6^& diff --git a/tests/gen/exports.28.wasm b/tests/gen/exports.28.wasm index 834177e7e425b97a1ee95c5edfc2b70d69cec391..a2f90fe1130c8556d4a774932ad9fc3d753a85d6 100644 GIT binary patch literal 23 ecmZQbEY4+QU|?WlW2|RzWZ-6JWn@fbW&i*sg#wKL literal 32 icmZQbEY4+QU|?Y5W~yg!WZ(u9?3_%DiOdW@%m@HTDg(&? diff --git a/tests/gen/exports.29.wasm b/tests/gen/exports.29.wasm index ca38a77ce4ba1ecf568ba4a02ecaac309aba89a0..e429246d9b964a006ddbec39234cd42d70a9c771 100644 GIT binary patch literal 15 WcmZQbEY4+QU|?WpWn@fbW&i*Y+yS)! literal 43 vcmV~$Q4s(j2t>hm!00HcY$5^tGJw_HrS1`+&;~crnjVYn!&Ht6X2{47T|xtV diff --git a/tests/gen/exports.30.wasm b/tests/gen/exports.30.wasm index 8cbe00e58906600052e9a7605a940c3769eb85fe..38002d4a35cc1b0c4d1f200c4f9509319b317358 100644 GIT binary patch literal 23 ecmZQbEY4+QU|?WlW2|RzWZ-6JWn@fbW&{8wh60WN literal 33 ocmZQbEY4+QU|?WjVJu)^U}IyfXK-ZTX6IyLOk`$YOk`vL07D=HZU6uP diff --git a/tests/gen/exports.31.wasm b/tests/gen/exports.31.wasm index af23959117155d197c8fd943ff9ecb27eaf7e1f0..728410f5310ef080984bac7ef854b87bcadc304c 100644 GIT binary patch literal 41 wcmZQbEY4+QU|?X9VB{z+NKGzDEiU0o&&f|p%!$u5He#-4U}t4yOk`#R0L@JaZU6uP literal 32 lcmZQbEY4+QU|?Wn29j)SjP(qT4BYITOpJ-l42+3P3;;Mc0{;L2 diff --git a/tests/gen/exports.32.wasm b/tests/gen/exports.32.wasm index 539a89bf190ae897dfed7d0ee431aada5c83d162..545e7b7de6ac6789fd490517fbca88d7ea3ef65a 100644 GIT binary patch literal 27 fcmZQbEY4+QU|?WlW2|RzWZ-7!WMWKYW&mLTF&6^& literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui diff --git a/tests/gen/exports.33.wasm b/tests/gen/exports.33.wasm index 1f2cfccf74d67b516d42994740aeaf9a74955374..834177e7e425b97a1ee95c5edfc2b70d69cec391 100644 GIT binary patch literal 32 icmZQbEY4+QU|?Y5W~yg!WZ(u9?3_%DiOdW@%m@HTDg(&? literal 25 gcmZQbEY4+QU|?WjVJu)^VCQ6FOk`wWOk!jJ04PQRl>h($ diff --git a/tests/gen/exports.34.wasm b/tests/gen/exports.34.wasm index 539a89bf190ae897dfed7d0ee431aada5c83d162..ca38a77ce4ba1ecf568ba4a02ecaac309aba89a0 100644 GIT binary patch literal 43 vcmV~$Q4s(j2t>hm!00HcY$5^tGJw_HrS1`+&;~crnjVYn!&Ht6X2{47T|xtV literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui diff --git a/tests/gen/exports.35.wasm b/tests/gen/exports.35.wasm index 48fb7293d12811b4118adf016e2d1eb6ac262a4b..8cbe00e58906600052e9a7605a940c3769eb85fe 100644 GIT binary patch literal 33 ocmZQbEY4+QU|?WjVJu)^U}IyfXK-ZTX6IyLOk`$YOk`vL07D=HZU6uP literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn diff --git a/tests/gen/exports.36.wasm b/tests/gen/exports.36.wasm index 539a89bf190ae897dfed7d0ee431aada5c83d162..af23959117155d197c8fd943ff9ecb27eaf7e1f0 100644 GIT binary patch literal 32 lcmZQbEY4+QU|?Wn29j)SjP(qT4BYITOpJ-l42+3P3;;Mc0{;L2 literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui diff --git a/tests/gen/exports.37.wasm b/tests/gen/exports.37.wasm index 48fb7293d12811b4118adf016e2d1eb6ac262a4b..539a89bf190ae897dfed7d0ee431aada5c83d162 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn diff --git a/tests/gen/exports.38.wasm b/tests/gen/exports.38.wasm index 539a89bf190ae897dfed7d0ee431aada5c83d162..1f2cfccf74d67b516d42994740aeaf9a74955374 100644 GIT binary patch literal 25 gcmZQbEY4+QU|?WjVJu)^VCQ6FOk`wWOk!jJ04PQRl>h($ literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui diff --git a/tests/gen/exports.39.wasm b/tests/gen/exports.39.wasm index 48fb7293d12811b4118adf016e2d1eb6ac262a4b..539a89bf190ae897dfed7d0ee431aada5c83d162 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn diff --git a/tests/gen/exports.40.wasm b/tests/gen/exports.40.wasm index 539a89bf190ae897dfed7d0ee431aada5c83d162..48fb7293d12811b4118adf016e2d1eb6ac262a4b 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui diff --git a/tests/gen/exports.41.wasm b/tests/gen/exports.41.wasm index 48fb7293d12811b4118adf016e2d1eb6ac262a4b..539a89bf190ae897dfed7d0ee431aada5c83d162 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn diff --git a/tests/gen/exports.42.wasm b/tests/gen/exports.42.wasm index 539a89bf190ae897dfed7d0ee431aada5c83d162..48fb7293d12811b4118adf016e2d1eb6ac262a4b 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui diff --git a/tests/gen/exports.43.wasm b/tests/gen/exports.43.wasm index 48fb7293d12811b4118adf016e2d1eb6ac262a4b..539a89bf190ae897dfed7d0ee431aada5c83d162 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn diff --git a/tests/gen/exports.44.wasm b/tests/gen/exports.44.wasm index 539a89bf190ae897dfed7d0ee431aada5c83d162..48fb7293d12811b4118adf016e2d1eb6ac262a4b 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui diff --git a/tests/gen/exports.45.wasm b/tests/gen/exports.45.wasm index 48fb7293d12811b4118adf016e2d1eb6ac262a4b..539a89bf190ae897dfed7d0ee431aada5c83d162 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn diff --git a/tests/gen/exports.46.wasm b/tests/gen/exports.46.wasm index 9dec9ee5f8348a4defd92c0437fc48785a5cf3f9..48fb7293d12811b4118adf016e2d1eb6ac262a4b 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vP03JF5EdT%j diff --git a/tests/gen/exports.47.wasm b/tests/gen/exports.47.wasm index 7b16c9ddf4f15559729fe4c717a208d3b9b541c0..539a89bf190ae897dfed7d0ee431aada5c83d162 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui literal 25 dcmZQbEY4+QU|?WjVJu)^VCQ6FOk`vLVE`yY0+av% diff --git a/tests/gen/exports.48.wasm b/tests/gen/exports.48.wasm index 94a8e1b7bdcf9818102be082f9ab611368265bdb..48fb7293d12811b4118adf016e2d1eb6ac262a4b 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn literal 41 qcmV~$fe8R048X8<4n%#@9Uut)4<^(*0;U^UNTwJ12um!OX|O&~R0A6T diff --git a/tests/gen/exports.49.wasm b/tests/gen/exports.49.wasm index 9733b5e7f9e55223b26ddcfcfe0814b3e8f2040a..539a89bf190ae897dfed7d0ee431aada5c83d162 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vL03JC4EC2ui literal 33 ocmZQbEY4+QU|?WjVJu)^U}IyfXK-ZTX6IyLOk`wWOk`#N07Do9ZU6uP diff --git a/tests/gen/exports.50.wasm b/tests/gen/exports.50.wasm index f28390c765aabb9f158b44494c4c85b2134e8408..48fb7293d12811b4118adf016e2d1eb6ac262a4b 100644 GIT binary patch literal 22 dcmZQbEY4+QU|?WjWh`K1U}R@yWK3ja001Bq0xtjn literal 30 jcmZQbEY4+QU|?WjVJu)^U}Xlf**TdQ6B!v86PXwQF?<4^ diff --git a/tests/gen/exports.51.wasm b/tests/gen/exports.51.wasm index 2981c2461cd601057c5978198cb8df7c23f69791..4ab93b296f449e57b1f5092ecb3c25228587f0be 100644 GIT binary patch literal 15 WcmZQbEY4+QU|?WpWn@fbWB>pW*a5Qu literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK diff --git a/tests/gen/exports.52.wasm b/tests/gen/exports.52.wasm index 6696dc1f5fc9b94f45aefa88f80c275fa40f0a4a..9dec9ee5f8348a4defd92c0437fc48785a5cf3f9 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjVJu)^U}t4yOk`vP03JF5EdT%j literal 24 dcmZQbEY4+QU|?Wn29oTYOpJ+442(%k3;-bG0w(|f diff --git a/tests/gen/exports.53.wasm b/tests/gen/exports.53.wasm index 2981c2461cd601057c5978198cb8df7c23f69791..f45b5aa66a23355f14cabc38fc8d0d29f4d379ea 100644 GIT binary patch literal 38 tcmZQbEY4+QU|?VpW#lL>NKGzDEiPd#NleN~Wh`Li5@Ba$WK3ja1OTK62iyPv literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK diff --git a/tests/gen/exports.54.wasm b/tests/gen/exports.54.wasm index f6bda9d18c5c0b1982ac2aefce047cd2aff19860..7b16c9ddf4f15559729fe4c717a208d3b9b541c0 100644 GIT binary patch literal 25 dcmZQbEY4+QU|?WjVJu)^VCQ6FOk`vLVE`yY0+av% literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM diff --git a/tests/gen/exports.55.wasm b/tests/gen/exports.55.wasm index 2981c2461cd601057c5978198cb8df7c23f69791..94a8e1b7bdcf9818102be082f9ab611368265bdb 100644 GIT binary patch literal 41 qcmV~$fe8R048X8<4n%#@9Uut)4<^(*0;U^UNTwJ12um!OX|O&~R0A6T literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK diff --git a/tests/gen/exports.56.wasm b/tests/gen/exports.56.wasm index f6bda9d18c5c0b1982ac2aefce047cd2aff19860..9733b5e7f9e55223b26ddcfcfe0814b3e8f2040a 100644 GIT binary patch literal 33 ocmZQbEY4+QU|?WjVJu)^U}IyfXK-ZTX6IyLOk`wWOk`#N07Do9ZU6uP literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM diff --git a/tests/gen/exports.57.wasm b/tests/gen/exports.57.wasm index 2981c2461cd601057c5978198cb8df7c23f69791..f28390c765aabb9f158b44494c4c85b2134e8408 100644 GIT binary patch literal 30 jcmZQbEY4+QU|?WjVJu)^U}Xlf**TdQ6B!v86PXwQF?<4^ literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK diff --git a/tests/gen/exports.58.wasm b/tests/gen/exports.58.wasm index f6bda9d18c5c0b1982ac2aefce047cd2aff19860..2981c2461cd601057c5978198cb8df7c23f69791 100644 GIT binary patch literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM diff --git a/tests/gen/exports.59.wasm b/tests/gen/exports.59.wasm index 2981c2461cd601057c5978198cb8df7c23f69791..6696dc1f5fc9b94f45aefa88f80c275fa40f0a4a 100644 GIT binary patch literal 24 dcmZQbEY4+QU|?Wn29oTYOpJ+442(%k3;-bG0w(|f literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK diff --git a/tests/gen/exports.60.wasm b/tests/gen/exports.60.wasm index f6bda9d18c5c0b1982ac2aefce047cd2aff19860..2981c2461cd601057c5978198cb8df7c23f69791 100644 GIT binary patch literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM diff --git a/tests/gen/exports.61.wasm b/tests/gen/exports.61.wasm index 2981c2461cd601057c5978198cb8df7c23f69791..f6bda9d18c5c0b1982ac2aefce047cd2aff19860 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK diff --git a/tests/gen/exports.62.wasm b/tests/gen/exports.62.wasm index f6bda9d18c5c0b1982ac2aefce047cd2aff19860..2981c2461cd601057c5978198cb8df7c23f69791 100644 GIT binary patch literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM diff --git a/tests/gen/exports.63.wasm b/tests/gen/exports.63.wasm index 2981c2461cd601057c5978198cb8df7c23f69791..f6bda9d18c5c0b1982ac2aefce047cd2aff19860 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK diff --git a/tests/gen/exports.64.wasm b/tests/gen/exports.64.wasm index f6bda9d18c5c0b1982ac2aefce047cd2aff19860..2981c2461cd601057c5978198cb8df7c23f69791 100644 GIT binary patch literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM diff --git a/tests/gen/exports.65.wasm b/tests/gen/exports.65.wasm index 699526de3b0f132377b557d72c14894884eea932..f6bda9d18c5c0b1982ac2aefce047cd2aff19860 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)i~tys0lokL diff --git a/tests/gen/exports.66.wasm b/tests/gen/exports.66.wasm index 0e6c0299ef6e7109eb8e2d850047e1a772e43698..2981c2461cd601057c5978198cb8df7c23f69791 100644 GIT binary patch literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK literal 24 bcmZQbEY4+QU|?Wn29oTYOpJ+43?K{uAm9Qf diff --git a/tests/gen/exports.67.wasm b/tests/gen/exports.67.wasm index fbded776f85e97f0971937b57bf57a5c478a2198..f6bda9d18c5c0b1982ac2aefce047cd2aff19860 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM literal 40 scmWN^!3_W)3WXgUjqM3-6KG$4PnvZzYnX73TDcz2S(`vtN;K2 diff --git a/tests/gen/exports.68.wasm b/tests/gen/exports.68.wasm index 0520a4adc9fcb8b9af1aa95093d7a58d09d63176..2981c2461cd601057c5978198cb8df7c23f69791 100644 GIT binary patch literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK literal 32 lcmZQbEY4+QU|?Wn29j)SjP(qT4BYITOpJ+442+4)3;;MY0{;L2 diff --git a/tests/gen/exports.69.wasm b/tests/gen/exports.69.wasm index 1e327f93cd5449fed988d0dd09a9df2ea3b8d53f..f6bda9d18c5c0b1982ac2aefce047cd2aff19860 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM literal 30 jcmZQbEY4+QU|?WjVJu)^U}Xlf**TdQ6PXwo6B!u*F@OS| diff --git a/tests/gen/exports.70.wasm b/tests/gen/exports.70.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2981c2461cd601057c5978198cb8df7c23f69791 GIT binary patch literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)3;-CA0lfeK literal 0 HcmV?d00001 diff --git a/tests/gen/exports.71.wasm b/tests/gen/exports.71.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f6bda9d18c5c0b1982ac2aefce047cd2aff19860 GIT binary patch literal 21 ccmZQbEY4+QU|?WnVPs@rWM^e$Ok`pJ02%rLzyJUM literal 0 HcmV?d00001 diff --git a/tests/gen/exports.72.wasm b/tests/gen/exports.72.wasm new file mode 100644 index 0000000000000000000000000000000000000000..04759b4753a2e40fa542a81653ff0bb75cf60b14 GIT binary patch literal 15 WcmZQbEY4+QU|?WpWn@fbVgLXU+5xlx literal 0 HcmV?d00001 diff --git a/tests/gen/exports.73.wasm b/tests/gen/exports.73.wasm new file mode 100644 index 0000000000000000000000000000000000000000..699526de3b0f132377b557d72c14894884eea932 GIT binary patch literal 20 ZcmZQbEY4+QU|?Wn29oTojEsp)i~tys0lokL literal 0 HcmV?d00001 diff --git a/tests/gen/exports.74.wasm b/tests/gen/exports.74.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9692101edaa8a9c0c6b1cd2c9db1abd2bf7bab86 GIT binary patch literal 38 tcmZQbEY4+QU|?VpW#lL>NKGzDEiPfpP0h_Os$^nhWMXG!WK3jY1OTOC2ju_& literal 0 HcmV?d00001 diff --git a/tests/gen/exports.75.wasm b/tests/gen/exports.75.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0e6c0299ef6e7109eb8e2d850047e1a772e43698 GIT binary patch literal 24 bcmZQbEY4+QU|?Wn29oTYOpJ+43?K{uAm9Qf literal 0 HcmV?d00001 diff --git a/tests/gen/exports.76.wasm b/tests/gen/exports.76.wasm new file mode 100644 index 0000000000000000000000000000000000000000..fbded776f85e97f0971937b57bf57a5c478a2198 GIT binary patch literal 40 scmWN^!3_W)3WXgUjqM3-6KG$4PnvZzYnX73TDcz2S(`vtN;K2 literal 0 HcmV?d00001 diff --git a/tests/gen/exports.77.wasm b/tests/gen/exports.77.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0520a4adc9fcb8b9af1aa95093d7a58d09d63176 GIT binary patch literal 32 lcmZQbEY4+QU|?Wn29j)SjP(qT4BYITOpJ+442+4)3;;MY0{;L2 literal 0 HcmV?d00001 diff --git a/tests/gen/exports.78.wasm b/tests/gen/exports.78.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1e327f93cd5449fed988d0dd09a9df2ea3b8d53f GIT binary patch literal 30 jcmZQbEY4+QU|?WjVJu)^U}Xlf**TdQ6PXwo6B!u*F@OS| literal 0 HcmV?d00001 diff --git a/tests/gen/exports.json b/tests/gen/exports.json index 4f1e170..85305c8 100644 --- a/tests/gen/exports.json +++ b/tests/gen/exports.json @@ -11,62 +11,74 @@ {"type": "module", "line": 12, "filename": "exports.8.wasm"}, {"type": "module", "line": 13, "filename": "exports.9.wasm"}, {"type": "module", "line": 14, "filename": "exports.10.wasm"}, - {"type": "assert_invalid", "line": 29, "filename": "exports.11.wasm", "text": "unknown function", "module_type": "binary"}, - {"type": "assert_invalid", "line": 33, "filename": "exports.12.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 37, "filename": "exports.13.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 41, "filename": "exports.14.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 45, "filename": "exports.15.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 49, "filename": "exports.16.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "module", "line": 56, "filename": "exports.17.wasm"}, - {"type": "module", "line": 57, "filename": "exports.18.wasm"}, - {"type": "module", "line": 58, "filename": "exports.19.wasm"}, - {"type": "module", "line": 60, "filename": "exports.20.wasm"}, - {"type": "module", "line": 61, "filename": "exports.21.wasm"}, - {"type": "module", "line": 62, "filename": "exports.22.wasm"}, - {"type": "module", "line": 63, "filename": "exports.23.wasm"}, - {"type": "module", "line": 64, "filename": "exports.24.wasm"}, - {"type": "module", "line": 65, "filename": "exports.25.wasm"}, - {"type": "assert_invalid", "line": 78, "filename": "exports.26.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 82, "filename": "exports.27.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 86, "filename": "exports.28.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 90, "filename": "exports.29.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 94, "filename": "exports.30.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 98, "filename": "exports.31.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "module", "line": 105, "filename": "exports.32.wasm"}, - {"type": "module", "line": 106, "filename": "exports.33.wasm"}, - {"type": "module", "line": 110, "filename": "exports.34.wasm"}, - {"type": "module", "line": 111, "filename": "exports.35.wasm"}, - {"type": "module", "line": 112, "filename": "exports.36.wasm"}, - {"type": "module", "line": 113, "filename": "exports.37.wasm"}, - {"type": "module", "line": 114, "filename": "exports.38.wasm"}, - {"type": "module", "line": 115, "filename": "exports.39.wasm"}, - {"type": "module", "line": 116, "filename": "exports.40.wasm"}, - {"type": "module", "line": 117, "filename": "exports.41.wasm"}, - {"type": "module", "line": 118, "filename": "exports.42.wasm"}, - {"type": "module", "line": 119, "filename": "exports.43.wasm"}, - {"type": "module", "line": 120, "filename": "exports.44.wasm"}, - {"type": "module", "line": 121, "filename": "exports.45.wasm"}, - {"type": "assert_invalid", "line": 126, "filename": "exports.46.wasm", "text": "unknown table", "module_type": "binary"}, - {"type": "assert_invalid", "line": 130, "filename": "exports.47.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 139, "filename": "exports.48.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 143, "filename": "exports.49.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 147, "filename": "exports.50.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "module", "line": 154, "filename": "exports.51.wasm"}, - {"type": "module", "line": 155, "filename": "exports.52.wasm"}, - {"type": "module", "line": 159, "filename": "exports.53.wasm"}, - {"type": "module", "line": 160, "filename": "exports.54.wasm"}, - {"type": "module", "line": 161, "filename": "exports.55.wasm"}, - {"type": "module", "line": 162, "filename": "exports.56.wasm"}, - {"type": "module", "line": 163, "filename": "exports.57.wasm"}, - {"type": "module", "line": 164, "filename": "exports.58.wasm"}, - {"type": "module", "line": 165, "filename": "exports.59.wasm"}, - {"type": "module", "line": 166, "filename": "exports.60.wasm"}, - {"type": "module", "line": 167, "filename": "exports.61.wasm"}, - {"type": "module", "line": 168, "filename": "exports.62.wasm"}, - {"type": "module", "line": 169, "filename": "exports.63.wasm"}, - {"type": "module", "line": 170, "filename": "exports.64.wasm"}, - {"type": "assert_invalid", "line": 175, "filename": "exports.65.wasm", "text": "unknown memory", "module_type": "binary"}, - {"type": "assert_invalid", "line": 179, "filename": "exports.66.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 188, "filename": "exports.67.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 192, "filename": "exports.68.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 196, "filename": "exports.69.wasm", "text": "duplicate export name", "module_type": "binary"}]} + {"type": "module", "line": 29, "filename": "exports.11.wasm"}, + {"type": "assert_return", "line": 35, "action": {"type": "invoke", "field": "a", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_return", "line": 36, "action": {"type": "invoke", "field": "b", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_return", "line": 37, "action": {"type": "invoke", "field": "c", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_invalid", "line": 40, "filename": "exports.12.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 44, "filename": "exports.13.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 48, "filename": "exports.14.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 52, "filename": "exports.15.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 56, "filename": "exports.16.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 60, "filename": "exports.17.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 64, "filename": "exports.18.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 68, "filename": "exports.19.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "module", "line": 75, "filename": "exports.20.wasm"}, + {"type": "module", "line": 76, "filename": "exports.21.wasm"}, + {"type": "module", "line": 77, "filename": "exports.22.wasm"}, + {"type": "module", "line": 79, "filename": "exports.23.wasm"}, + {"type": "module", "line": 80, "filename": "exports.24.wasm"}, + {"type": "module", "line": 81, "filename": "exports.25.wasm"}, + {"type": "module", "line": 82, "filename": "exports.26.wasm"}, + {"type": "module", "line": 83, "filename": "exports.27.wasm"}, + {"type": "module", "line": 84, "filename": "exports.28.wasm"}, + {"type": "assert_invalid", "line": 98, "filename": "exports.29.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 102, "filename": "exports.30.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 106, "filename": "exports.31.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 110, "filename": "exports.32.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 114, "filename": "exports.33.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 118, "filename": "exports.34.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 122, "filename": "exports.35.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 126, "filename": "exports.36.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "module", "line": 133, "filename": "exports.37.wasm"}, + {"type": "module", "line": 134, "filename": "exports.38.wasm"}, + {"type": "module", "line": 138, "filename": "exports.39.wasm"}, + {"type": "module", "line": 139, "filename": "exports.40.wasm"}, + {"type": "module", "line": 140, "filename": "exports.41.wasm"}, + {"type": "module", "line": 141, "filename": "exports.42.wasm"}, + {"type": "module", "line": 142, "filename": "exports.43.wasm"}, + {"type": "module", "line": 143, "filename": "exports.44.wasm"}, + {"type": "module", "line": 144, "filename": "exports.45.wasm"}, + {"type": "module", "line": 145, "filename": "exports.46.wasm"}, + {"type": "module", "line": 146, "filename": "exports.47.wasm"}, + {"type": "module", "line": 147, "filename": "exports.48.wasm"}, + {"type": "module", "line": 148, "filename": "exports.49.wasm"}, + {"type": "module", "line": 149, "filename": "exports.50.wasm"}, + {"type": "assert_invalid", "line": 154, "filename": "exports.51.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 158, "filename": "exports.52.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 162, "filename": "exports.53.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 166, "filename": "exports.54.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 175, "filename": "exports.55.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 179, "filename": "exports.56.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 183, "filename": "exports.57.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "module", "line": 190, "filename": "exports.58.wasm"}, + {"type": "module", "line": 191, "filename": "exports.59.wasm"}, + {"type": "module", "line": 195, "filename": "exports.60.wasm"}, + {"type": "module", "line": 196, "filename": "exports.61.wasm"}, + {"type": "module", "line": 197, "filename": "exports.62.wasm"}, + {"type": "module", "line": 198, "filename": "exports.63.wasm"}, + {"type": "module", "line": 199, "filename": "exports.64.wasm"}, + {"type": "module", "line": 200, "filename": "exports.65.wasm"}, + {"type": "module", "line": 201, "filename": "exports.66.wasm"}, + {"type": "module", "line": 202, "filename": "exports.67.wasm"}, + {"type": "module", "line": 203, "filename": "exports.68.wasm"}, + {"type": "module", "line": 204, "filename": "exports.69.wasm"}, + {"type": "module", "line": 205, "filename": "exports.70.wasm"}, + {"type": "module", "line": 206, "filename": "exports.71.wasm"}, + {"type": "assert_invalid", "line": 211, "filename": "exports.72.wasm", "text": "unknown memory", "module_type": "binary"}, + {"type": "assert_invalid", "line": 215, "filename": "exports.73.wasm", "text": "unknown memory", "module_type": "binary"}, + {"type": "assert_invalid", "line": 219, "filename": "exports.74.wasm", "text": "unknown memory", "module_type": "binary"}, + {"type": "assert_invalid", "line": 223, "filename": "exports.75.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 232, "filename": "exports.76.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 236, "filename": "exports.77.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 240, "filename": "exports.78.wasm", "text": "duplicate export name", "module_type": "binary"}]} diff --git a/tests/gen/func.0.wasm b/tests/gen/func.0.wasm index 61360eecc41d9d2c877c404c074a6cf9d32af11c..a325ec77681d8210485fec9b26e314a8a6e52445 100644 GIT binary patch delta 207 zcmZ3&+sDhzkXW3{$iTqB7%w!DTW6xZM?C`*BNHbZ5RzFC1VQT9JJ>B5(|{(VGq7-#R2HP_mKLY#8Zw9?I7SR&2#zs>ID%usAOYm4 oKsA{%NFt=n7^Dy!a|Y?nT8yg9j7KL2umn$Dz+%1m4a*Kj01`tf;{X5v delta 215 zcmeCbZ5RzF41VQT9JJ>B5(-@c-(-~N}N-7IdbxVs=bqyIr5F8^0Q3S`B xK@7n$VGsv$RG^wn86*%=W(<-DjyZ$WW+g^dX2#2tJy?P#&ttLJe3a!RBLFI?ENlP( diff --git a/tests/gen/func.10.wat b/tests/gen/func.10.wat index 736825f..cf722c8 100644 --- a/tests/gen/func.10.wat +++ b/tests/gen/func.10.wat @@ -1 +1 @@ -(type $sig (func))(func (type $sig) (result i32) (i32.const 0)) \ No newline at end of file +(type $sig (func (param i32) (result i32)))(func (result i32) (param i32) (type $sig) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.11.wat b/tests/gen/func.11.wat index c01e273..1b64863 100644 --- a/tests/gen/func.11.wat +++ b/tests/gen/func.11.wat @@ -1 +1 @@ -(type $sig (func (param i32) (result i32)))(func (type $sig) (result i32) (i32.const 0)) \ No newline at end of file +(func (result i32) (param i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.12.wat b/tests/gen/func.12.wat index 51aa782..736825f 100644 --- a/tests/gen/func.12.wat +++ b/tests/gen/func.12.wat @@ -1 +1 @@ -(type $sig (func (param i32) (result i32)))(func (type $sig) (param i32) (i32.const 0)) \ No newline at end of file +(type $sig (func))(func (type $sig) (result i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.13.wat b/tests/gen/func.13.wat index 6eb6cf2..c01e273 100644 --- a/tests/gen/func.13.wat +++ b/tests/gen/func.13.wat @@ -1 +1 @@ -(type $sig (func (param i32 i32) (result i32)))(func (type $sig) (param i32) (result i32) (unreachable)) \ No newline at end of file +(type $sig (func (param i32) (result i32)))(func (type $sig) (result i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.14.wasm b/tests/gen/func.14.wasm deleted file mode 100644 index 38b3ca8fcc8b2117e38307c305de15517012fbbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29 kcmZQbEY4+QU|?WmWlUgTtYcdpWMgEkS76`<05oF)^Z)<= diff --git a/tests/gen/func.14.wat b/tests/gen/func.14.wat new file mode 100644 index 0000000..51aa782 --- /dev/null +++ b/tests/gen/func.14.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (type $sig) (param i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.15.wasm b/tests/gen/func.15.wasm deleted file mode 100644 index 3620ba1160b952a90843fd92f5dd099893c9defb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29 kcmZQbEY4+QU|?WmVN76PU}j=u;NoOtXJo8ZU~uII04^^Axc~qF diff --git a/tests/gen/func.15.wat b/tests/gen/func.15.wat new file mode 100644 index 0000000..6eb6cf2 --- /dev/null +++ b/tests/gen/func.15.wat @@ -0,0 +1 @@ +(type $sig (func (param i32 i32) (result i32)))(func (type $sig) (param i32) (result i32) (unreachable)) \ No newline at end of file diff --git a/tests/gen/func.16.wasm b/tests/gen/func.16.wasm index e2a0c636e8c24d6e76b9de0c6422e610a5603d68..38b3ca8fcc8b2117e38307c305de15517012fbbe 100644 GIT binary patch literal 29 kcmZQbEY4+QU|?WmWlUgTtYcdpWMgEkS76`<05oF)^Z)<= literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWMZsgtW#i|#SH*97z2_3 diff --git a/tests/gen/func.17.wasm b/tests/gen/func.17.wasm index 7ab9f08deb75966f2c3daabf51cb915ab6c7fbd0..3620ba1160b952a90843fd92f5dd099893c9defb 100644 GIT binary patch literal 29 kcmZQbEY4+QU|?WmVN76PU}j=u;NoOtXJo8ZU~uII04^^Axc~qF literal 28 jcmZQbEY4+QU|?WmV@zPIXRKppVr1ZAV`O1aVBiJ-Hu3`S diff --git a/tests/gen/func.18.wasm b/tests/gen/func.18.wasm index d07afb6d5e110a3b0f703a78a9071a69ccf24e8a..e2a0c636e8c24d6e76b9de0c6422e610a5603d68 100644 GIT binary patch literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWMZsgtW#i|#SH*97z2_3 literal 28 jcmZQbEY4+QU|?WmWlUhKWngAvWZ+_FWMxobaODO7F(3l9 diff --git a/tests/gen/func.19.wasm b/tests/gen/func.19.wasm index 992752b0e721f0cd55d365c647a15ba744212a9f..7ab9f08deb75966f2c3daabf51cb915ab6c7fbd0 100644 GIT binary patch literal 28 jcmZQbEY4+QU|?WmV@zPIXRKppVr1ZAV`O1aVBiJ-Hu3`S literal 29 kcmZQbEY4+QU|?WmV@zPGsbgSfVr1ZAXJlniV4TGb06T00iU0rr diff --git a/tests/gen/func.20.wasm b/tests/gen/func.20.wasm index 9a93fd9d6f04e1f12df74273db79afc9660c7f79..d07afb6d5e110a3b0f703a78a9071a69ccf24e8a 100644 GIT binary patch literal 28 jcmZQbEY4+QU|?WmWlUhKWngAvWZ+_FWMxobaODO7F(3l9 literal 27 icmZQbEY4+QU|?WmV@zORs;_5eVr1ZAWn^Yx;06FQPy){Y diff --git a/tests/gen/func.21.wasm b/tests/gen/func.21.wasm index 9a93fd9d6f04e1f12df74273db79afc9660c7f79..992752b0e721f0cd55d365c647a15ba744212a9f 100644 GIT binary patch literal 29 kcmZQbEY4+QU|?WmV@zPGsbgSfVr1ZAXJlniV4TGb06T00iU0rr literal 27 icmZQbEY4+QU|?WmV@zORs;_5eVr1ZAWn^Yx;06FQPy){Y diff --git a/tests/gen/func.26.wasm b/tests/gen/func.26.wasm index 09d13fc921326dfa2ae18b17288adbe01af7a5e4..80e18bb389246995e91baba7c8ac1ae9217b2598 100644 GIT binary patch literal 26 hcmZQbEY4+QU|?WmV@zORs;OsYVr1ZAVPs<91^_T%0?GgY literal 26 hcmZQbEY4+QU|?WmWlUgTtY>CoWZ+_DWM*LG1^_D*0#5({ diff --git a/tests/gen/func.27.wasm b/tests/gen/func.27.wasm index ab3441a74b2dfd2171f549d35b2b7c6456d819c7..09d13fc921326dfa2ae18b17288adbe01af7a5e4 100644 GIT binary patch literal 26 hcmZQbEY4+QU|?WmWlUgTtY>CoWZ+_DWM*LG1^_D*0#5({ literal 26 hcmZQbEY4+QU|?WmVN76PU}j=u;9_HBVQ^&N1^^}K0uTTI diff --git a/tests/gen/func.28.wasm b/tests/gen/func.28.wasm index a3d334e25847e0c1d0aab971fc58bc5d983f7dec..646739a7278b2fa1ef60a017876c6b42046cc652 100644 GIT binary patch literal 27 icmZQbEY4+QU|?WmV@zORs;_5eVr1ZAWn^YxCoWZ>dtWM^;&iZO5l05$jmnE(I) diff --git a/tests/gen/func.29.wasm b/tests/gen/func.29.wasm index 6abd763d7cbff7ab72d6b25381c54e5d610f6b66..ab3441a74b2dfd2171f549d35b2b7c6456d819c7 100644 GIT binary patch literal 26 hcmZQbEY4+QU|?WmVN76PU}j=u;9_HBVQ^&N1^^}K0uTTI literal 26 hcmZQbEY4+QU|?WmWlUgTtY>CoWZ+_DWM<&!1^_EC0$l(A diff --git a/tests/gen/func.3.wat b/tests/gen/func.3.wat new file mode 100644 index 0000000..d726cb4 --- /dev/null +++ b/tests/gen/func.3.wat @@ -0,0 +1 @@ +(func $f (result f64) (f64.const 0))(func $g (param i32))(func $h (result f64) (f64.const 1))(type $t (func (param i32)))(func (type 2) (param i32)) \ No newline at end of file diff --git a/tests/gen/func.30.wasm b/tests/gen/func.30.wasm index 98c9e89736bf8a3f11c2b2ef4906962ad71fd288..5a698e1b6e8c7aab384efdd16c0f1542bedfbbe1 100644 GIT binary patch literal 28 jcmZQbEY4+QU|?WmVN76PU}j=u;NoCpV{l|}V&DbCoWZ+_BWMN?B=LP^Rf&yRw diff --git a/tests/gen/func.31.wasm b/tests/gen/func.31.wasm index f68575340368e128f28beb5c44686f752a70ba23..a3d334e25847e0c1d0aab971fc58bc5d983f7dec 100644 GIT binary patch delta 15 Ucmb1nIOW!&dAE(#K6xD01L4JPyhe` diff --git a/tests/gen/func.32.wasm b/tests/gen/func.32.wasm index 82b740704dc96d29b2dcf9f4f0ac905a77a55a28..7682938ce82203d3a0e3412151cf5e15f793b32e 100644 GIT binary patch literal 31 lcmZQbEY4+QU|?WmV@zORs;y;aVr1arWMpS>1`0B80{}nx0~P=P literal 28 jcmZQbEY4+QU|?WmWlUgTtY>CoWZ+_FWM$xYWaI__Ftq}s diff --git a/tests/gen/func.33.wasm b/tests/gen/func.33.wasm index f0f716dd2841e7e15f4d365746bf843cdf73be10..e2a518df0950d73c1b85a33f075ab24ce3e1707c 100644 GIT binary patch literal 35 kcmZQbEY4+QU|?WmWlUgTtYv0mWZ>dsCoWZ>dpWMg3DcVy%S05cH+rT_o{ diff --git a/tests/gen/func.34.wasm b/tests/gen/func.34.wasm index c81f53e0c537f17a5b5f2959793c2b654acea8f5..6abd763d7cbff7ab72d6b25381c54e5d610f6b66 100644 GIT binary patch delta 11 Scmb1>njpf)%E-*X&kXCoWZ>drCoWZ>dvCoWZ>dr!^p+p#K^CoWZ>duWaM{b;syXgHUnz_ literal 35 ocmZQbEY4+QU|?WmWlUgTtY>CoWZ>ds<{9 diff --git a/tests/gen/func.43.wasm b/tests/gen/func.43.wasm index fb88f96e5baefae13e2e7232ca215176990bc473..f0f716dd2841e7e15f4d365746bf843cdf73be10 100644 GIT binary patch delta 14 VcmY$9ogl)=!N|tI$nVI=4FC-Q0b2k7 delta 21 ccmb1DnIIy-&&bQb<{9 diff --git a/tests/gen/func.44.wasm b/tests/gen/func.44.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2042bd91b9d888449e0216760f2836d1d8667956 GIT binary patch literal 30 lcmZQbEY4+QU|?WmV@zORs;_5eVr1arU}R%pCoWZ>dtWM^<<CoWZ>drCoWZ+_BWMSZ8;06FKg#ugv literal 0 HcmV?d00001 diff --git a/tests/gen/func.3.wasm b/tests/gen/func.5.wasm similarity index 100% rename from tests/gen/func.3.wasm rename to tests/gen/func.5.wasm diff --git a/tests/gen/func.5.wat b/tests/gen/func.5.wat deleted file mode 100644 index 2b934fe..0000000 --- a/tests/gen/func.5.wat +++ /dev/null @@ -1 +0,0 @@ -(type $sig (func (param i32) (result i32)))(func (param i32) (type $sig) (result i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.50.wasm b/tests/gen/func.50.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9d11adcbc5b4cf6202a87b1c5b37de3ea29bc965 GIT binary patch literal 28 jcmZQbEY4+QU|?WmV@zORs;_5eVr1ZAV`O3AVc-S;Hbes5 literal 0 HcmV?d00001 diff --git a/tests/gen/func.51.wasm b/tests/gen/func.51.wasm new file mode 100644 index 0000000000000000000000000000000000000000..53113be77f25adea0f60cf4d18f9665b882506ef GIT binary patch literal 32 mcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dvCoWZ>dpWMklAaAf2L05c2%q5uE@ literal 0 HcmV?d00001 diff --git a/tests/gen/func.54.wasm b/tests/gen/func.54.wasm new file mode 100644 index 0000000000000000000000000000000000000000..71047e8c0f3c974702b93ff1ca46551e97339187 GIT binary patch literal 32 ncmZQbEY4+QU|?WmV@zORs;_5eVr1arV&q`pVQ^%0Wa0(@L+k@; literal 0 HcmV?d00001 diff --git a/tests/gen/func.55.wasm b/tests/gen/func.55.wasm new file mode 100644 index 0000000000000000000000000000000000000000..50a91fac2f1bb78fac4bed31c82af6db9f9bedfb GIT binary patch literal 31 mcmZQbEY4+QU|?WmWlUgTtY>CoWZ>drCoWZ>dqCoWZ>duCoWZ>ds<{9 literal 0 HcmV?d00001 diff --git a/tests/gen/func.61.wasm b/tests/gen/func.61.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ee33e1a0230b0c71d99046f1ac1c4c1d3a465171 GIT binary patch literal 38 tcmZQbEY4+QU|?WmV@zORs;_5eVr1YFVB}+9a$w|PCoWZ>dw Date: Sun, 13 Oct 2024 19:02:54 -0700 Subject: [PATCH 06/11] update tests --- tests/binary-leb128.wast | 1084 +++++++++++++ tests/binary.wast | 1403 +++++++++++++++++ tests/gen.py | 3 +- tests/gen/assert_binary-leb128.0.c | 11 + tests/gen/assert_binary-leb128.1.c | 11 + tests/gen/assert_binary-leb128.10.c | 11 + tests/gen/assert_binary-leb128.11.c | 11 + tests/gen/assert_binary-leb128.12.c | 11 + tests/gen/assert_binary-leb128.13.c | 11 + tests/gen/assert_binary-leb128.14.c | 11 + tests/gen/assert_binary-leb128.15.c | 11 + tests/gen/assert_binary-leb128.16.c | 11 + tests/gen/assert_binary-leb128.17.c | 11 + tests/gen/assert_binary-leb128.18.c | 11 + tests/gen/assert_binary-leb128.19.c | 11 + tests/gen/assert_binary-leb128.2.c | 11 + tests/gen/assert_binary-leb128.20.c | 11 + tests/gen/assert_binary-leb128.21.c | 11 + tests/gen/assert_binary-leb128.22.c | 11 + tests/gen/assert_binary-leb128.23.c | 11 + tests/gen/assert_binary-leb128.3.c | 11 + tests/gen/assert_binary-leb128.4.c | 11 + tests/gen/assert_binary-leb128.5.c | 11 + tests/gen/assert_binary-leb128.6.c | 11 + tests/gen/assert_binary-leb128.7.c | 11 + tests/gen/assert_binary-leb128.8.c | 11 + tests/gen/assert_binary-leb128.80.c | 11 + tests/gen/assert_binary-leb128.82.c | 11 + tests/gen/assert_binary-leb128.83.c | 11 + tests/gen/assert_binary-leb128.84.c | 11 + tests/gen/assert_binary-leb128.9.c | 11 + tests/gen/assert_binary.0.c | 11 + tests/gen/assert_binary.1.c | 11 + tests/gen/assert_binary.102.c | 11 + tests/gen/assert_binary.107.c | 11 + tests/gen/assert_binary.109.c | 11 + tests/gen/assert_binary.2.c | 11 + tests/gen/assert_binary.3.c | 11 + tests/gen/assert_binary.55.c | 11 + tests/gen/assert_binary.60.c | 11 + tests/gen/assert_binary.61.c | 11 + tests/gen/assert_binary.69.c | 11 + tests/gen/assert_binary.72.c | 11 + tests/gen/assert_binary.81.c | 11 + tests/gen/assert_binary.86.c | 11 + tests/gen/assert_binary.92.c | 11 + tests/gen/assert_binary.95.c | 11 + tests/gen/assert_binary.98.c | 11 + tests/gen/assert_global.0.c | 22 + tests/gen/assert_global.20.c | 11 - tests/gen/assert_global.22.c | 11 + tests/gen/assert_global.23.c | 11 - tests/gen/assert_global.25.c | 11 + tests/gen/assert_loop.0.c | 15 - tests/gen/assert_memory.34.c | 51 + tests/gen/assert_memory_trap.1.c | 21 + tests/gen/assert_select.0.c | 52 +- tests/gen/assert_select.26.c | 11 + tests/gen/assert_unreachable.0.c | 36 + tests/gen/assert_unreached-valid.0.c | 11 + tests/gen/assert_unreached-valid.1.c | 11 + tests/gen/binary-leb128.0.wasm | Bin 0 -> 14 bytes tests/gen/binary-leb128.1.wasm | Bin 0 -> 17 bytes tests/gen/binary-leb128.10.wasm | Bin 0 -> 40 bytes tests/gen/binary-leb128.11.wasm | Bin 0 -> 40 bytes tests/gen/binary-leb128.12.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.13.wasm | Bin 0 -> 33 bytes tests/gen/binary-leb128.14.wasm | Bin 0 -> 33 bytes tests/gen/binary-leb128.15.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.16.wasm | Bin 0 -> 17 bytes tests/gen/binary-leb128.17.wasm | Bin 0 -> 17 bytes tests/gen/binary-leb128.18.wasm | Bin 0 -> 20 bytes tests/gen/binary-leb128.19.wasm | Bin 0 -> 20 bytes tests/gen/binary-leb128.2.wasm | Bin 0 -> 16 bytes tests/gen/binary-leb128.20.wasm | Bin 0 -> 17 bytes tests/gen/binary-leb128.21.wasm | Bin 0 -> 17 bytes tests/gen/binary-leb128.22.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.23.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.24.wasm | Bin 0 -> 18 bytes tests/gen/binary-leb128.25.wasm | Bin 0 -> 20 bytes tests/gen/binary-leb128.26.wasm | Bin 0 -> 26 bytes tests/gen/binary-leb128.27.wasm | Bin 0 -> 27 bytes tests/gen/binary-leb128.28.wasm | Bin 0 -> 18 bytes tests/gen/binary-leb128.29.wasm | Bin 0 -> 20 bytes tests/gen/binary-leb128.3.wasm | Bin 0 -> 19 bytes tests/gen/binary-leb128.30.wasm | Bin 0 -> 22 bytes tests/gen/binary-leb128.31.wasm | Bin 0 -> 22 bytes tests/gen/binary-leb128.32.wasm | Bin 0 -> 44 bytes tests/gen/binary-leb128.33.wasm | Bin 0 -> 44 bytes tests/gen/binary-leb128.34.wasm | Bin 0 -> 44 bytes tests/gen/binary-leb128.35.wasm | Bin 0 -> 29 bytes tests/gen/binary-leb128.36.wasm | Bin 0 -> 37 bytes tests/gen/binary-leb128.37.wasm | Bin 0 -> 37 bytes tests/gen/binary-leb128.38.wasm | Bin 0 -> 29 bytes tests/gen/binary-leb128.39.wasm | Bin 0 -> 47 bytes tests/gen/binary-leb128.4.wasm | Bin 0 -> 22 bytes tests/gen/binary-leb128.40.wasm | Bin 0 -> 42 bytes tests/gen/binary-leb128.41.wasm | Bin 0 -> 43 bytes tests/gen/binary-leb128.42.wasm | Bin 0 -> 48 bytes tests/gen/binary-leb128.43.wasm | Bin 0 -> 21 bytes tests/gen/binary-leb128.44.wasm | Bin 0 -> 21 bytes tests/gen/binary-leb128.45.wasm | Bin 0 -> 26 bytes tests/gen/binary-leb128.46.wasm | Bin 0 -> 26 bytes tests/gen/binary-leb128.47.wasm | Bin 0 -> 17 bytes tests/gen/binary-leb128.48.wasm | Bin 0 -> 17 bytes tests/gen/binary-leb128.49.wasm | Bin 0 -> 19 bytes tests/gen/binary-leb128.5.wasm | Bin 0 -> 21 bytes tests/gen/binary-leb128.50.wasm | Bin 0 -> 19 bytes tests/gen/binary-leb128.51.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.52.wasm | Bin 0 -> 26 bytes tests/gen/binary-leb128.53.wasm | Bin 0 -> 17 bytes tests/gen/binary-leb128.54.wasm | Bin 0 -> 19 bytes tests/gen/binary-leb128.55.wasm | Bin 0 -> 21 bytes tests/gen/binary-leb128.56.wasm | Bin 0 -> 21 bytes tests/gen/binary-leb128.57.wasm | Bin 0 -> 43 bytes tests/gen/binary-leb128.58.wasm | Bin 0 -> 43 bytes tests/gen/binary-leb128.59.wasm | Bin 0 -> 43 bytes tests/gen/binary-leb128.6.wasm | Bin 0 -> 21 bytes tests/gen/binary-leb128.60.wasm | Bin 0 -> 28 bytes tests/gen/binary-leb128.61.wasm | Bin 0 -> 36 bytes tests/gen/binary-leb128.62.wasm | Bin 0 -> 36 bytes tests/gen/binary-leb128.63.wasm | Bin 0 -> 28 bytes tests/gen/binary-leb128.64.wasm | Bin 0 -> 46 bytes tests/gen/binary-leb128.65.wasm | Bin 0 -> 46 bytes tests/gen/binary-leb128.66.wasm | Bin 0 -> 41 bytes tests/gen/binary-leb128.67.wasm | Bin 0 -> 41 bytes tests/gen/binary-leb128.68.wasm | Bin 0 -> 42 bytes tests/gen/binary-leb128.69.wasm | Bin 0 -> 42 bytes tests/gen/binary-leb128.7.wasm | Bin 0 -> 18 bytes tests/gen/binary-leb128.70.wasm | Bin 0 -> 47 bytes tests/gen/binary-leb128.71.wasm | Bin 0 -> 47 bytes tests/gen/binary-leb128.72.wasm | Bin 0 -> 20 bytes tests/gen/binary-leb128.73.wasm | Bin 0 -> 20 bytes tests/gen/binary-leb128.74.wasm | Bin 0 -> 20 bytes tests/gen/binary-leb128.75.wasm | Bin 0 -> 20 bytes tests/gen/binary-leb128.76.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.77.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.78.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.79.wasm | Bin 0 -> 25 bytes tests/gen/binary-leb128.8.wasm | Bin 0 -> 18 bytes tests/gen/binary-leb128.80.wasm | Bin 0 -> 47 bytes tests/gen/binary-leb128.81.wasm | Bin 0 -> 33 bytes tests/gen/binary-leb128.82.wasm | Bin 0 -> 22 bytes tests/gen/binary-leb128.83.wasm | Bin 0 -> 23 bytes tests/gen/binary-leb128.84.wasm | Bin 0 -> 24 bytes tests/gen/binary-leb128.85.wasm | Bin 0 -> 15 bytes tests/gen/binary-leb128.9.wasm | Bin 0 -> 40 bytes tests/gen/binary-leb128.json | 88 ++ tests/gen/binary.0.wasm | Bin 0 -> 8 bytes tests/gen/binary.1.wasm | Bin 0 -> 8 bytes tests/gen/binary.10.wasm | Bin 0 -> 8 bytes tests/gen/binary.100.wasm | Bin 0 -> 36 bytes tests/gen/binary.101.wasm | Bin 0 -> 45 bytes tests/gen/binary.102.wasm | Bin 0 -> 16 bytes tests/gen/binary.103.wasm | Bin 0 -> 22 bytes tests/gen/binary.104.wasm | Bin 0 -> 28 bytes tests/gen/binary.105.wasm | Bin 0 -> 27 bytes tests/gen/binary.106.wasm | Bin 0 -> 27 bytes tests/gen/binary.107.wasm | Bin 0 -> 37 bytes tests/gen/binary.108.wasm | Bin 0 -> 72 bytes tests/gen/binary.109.wasm | Bin 0 -> 27 bytes tests/gen/binary.11.wasm | Bin 0 -> 8 bytes tests/gen/binary.110.wasm | Bin 0 -> 30 bytes tests/gen/binary.111.wasm | Bin 0 -> 31 bytes tests/gen/binary.112.wasm | Bin 0 -> 31 bytes tests/gen/binary.113.wasm | Bin 0 -> 14 bytes tests/gen/binary.114.wasm | Bin 0 -> 14 bytes tests/gen/binary.115.wasm | Bin 0 -> 14 bytes tests/gen/binary.116.wasm | Bin 0 -> 14 bytes tests/gen/binary.117.wasm | Bin 0 -> 14 bytes tests/gen/binary.118.wasm | Bin 0 -> 14 bytes tests/gen/binary.119.wasm | Bin 0 -> 14 bytes tests/gen/binary.12.wasm | Bin 0 -> 8 bytes tests/gen/binary.120.wasm | Bin 0 -> 14 bytes tests/gen/binary.121.wasm | Bin 0 -> 14 bytes tests/gen/binary.122.wasm | Bin 0 -> 14 bytes tests/gen/binary.123.wasm | Bin 0 -> 14 bytes tests/gen/binary.124.wasm | Bin 0 -> 14 bytes tests/gen/binary.125.wasm | Bin 0 -> 14 bytes tests/gen/binary.126.wasm | Bin 0 -> 14 bytes tests/gen/binary.127.wasm | Bin 0 -> 14 bytes tests/gen/binary.128.wasm | Bin 0 -> 18 bytes tests/gen/binary.129.wasm | Bin 0 -> 18 bytes tests/gen/binary.13.wasm | Bin 0 -> 8 bytes tests/gen/binary.130.wasm | Bin 0 -> 14 bytes tests/gen/binary.131.wasm | Bin 0 -> 14 bytes tests/gen/binary.132.wasm | Bin 0 -> 14 bytes tests/gen/binary.14.wasm | Bin 0 -> 8 bytes tests/gen/binary.15.wasm | Bin 0 -> 8 bytes tests/gen/binary.16.wasm | Bin 0 -> 8 bytes tests/gen/binary.17.wasm | Bin 0 -> 8 bytes tests/gen/binary.18.wasm | Bin 0 -> 8 bytes tests/gen/binary.19.wasm | Bin 0 -> 8 bytes tests/gen/binary.2.wasm | Bin 0 -> 8 bytes tests/gen/binary.20.wasm | Bin 0 -> 8 bytes tests/gen/binary.21.wasm | Bin 0 -> 8 bytes tests/gen/binary.22.wasm | Bin 0 -> 11 bytes tests/gen/binary.23.wasm | Bin 0 -> 4 bytes tests/gen/binary.24.wasm | Bin 0 -> 5 bytes tests/gen/binary.25.wasm | Bin 0 -> 7 bytes tests/gen/binary.26.wasm | Bin 0 -> 8 bytes tests/gen/binary.27.wasm | Bin 0 -> 8 bytes tests/gen/binary.28.wasm | Bin 0 -> 8 bytes tests/gen/binary.29.wasm | Bin 0 -> 8 bytes tests/gen/binary.3.wasm | Bin 0 -> 8 bytes tests/gen/binary.30.wasm | Bin 0 -> 8 bytes tests/gen/binary.31.wasm | Bin 0 -> 8 bytes tests/gen/binary.32.wasm | Bin 0 -> 11 bytes tests/gen/binary.33.wasm | Bin 0 -> 11 bytes tests/gen/binary.34.wasm | Bin 0 -> 14 bytes tests/gen/binary.35.wasm | Bin 0 -> 14 bytes tests/gen/binary.36.wasm | Bin 0 -> 14 bytes tests/gen/binary.37.wasm | Bin 0 -> 33 bytes tests/gen/binary.38.wasm | Bin 0 -> 26 bytes tests/gen/binary.39.wasm | Bin 0 -> 31 bytes tests/gen/binary.4.wasm | 0 tests/gen/binary.40.wasm | Bin 0 -> 31 bytes tests/gen/binary.41.wasm | Bin 0 -> 34 bytes tests/gen/binary.42.wasm | Bin 0 -> 35 bytes tests/gen/binary.43.wasm | Bin 0 -> 36 bytes tests/gen/binary.44.wasm | Bin 0 -> 37 bytes tests/gen/binary.45.wasm | Bin 0 -> 38 bytes tests/gen/binary.46.wasm | Bin 0 -> 32 bytes tests/gen/binary.47.wasm | Bin 0 -> 33 bytes tests/gen/binary.48.wasm | Bin 0 -> 34 bytes tests/gen/binary.49.wasm | Bin 0 -> 35 bytes tests/gen/binary.5.wasm | 1 + tests/gen/binary.50.wasm | Bin 0 -> 36 bytes tests/gen/binary.51.wasm | Bin 0 -> 32 bytes tests/gen/binary.52.wasm | Bin 0 -> 32 bytes tests/gen/binary.53.wasm | Bin 0 -> 32 bytes tests/gen/binary.54.wasm | Bin 0 -> 50 bytes tests/gen/binary.55.wasm | Bin 0 -> 30 bytes tests/gen/binary.56.wasm | Bin 0 -> 19 bytes tests/gen/binary.57.wasm | Bin 0 -> 14 bytes tests/gen/binary.58.wasm | Bin 0 -> 25 bytes tests/gen/binary.59.wasm | Bin 0 -> 27 bytes tests/gen/binary.6.wasm | Bin 0 -> 3 bytes tests/gen/binary.60.wasm | Bin 0 -> 11 bytes tests/gen/binary.61.wasm | Bin 0 -> 11 bytes tests/gen/binary.62.wasm | Bin 0 -> 18 bytes tests/gen/binary.63.wasm | Bin 0 -> 18 bytes tests/gen/binary.64.wasm | Bin 0 -> 16 bytes tests/gen/binary.65.wasm | Bin 0 -> 44 bytes tests/gen/binary.66.wasm | Bin 0 -> 37 bytes tests/gen/binary.67.wasm | Bin 0 -> 44 bytes tests/gen/binary.68.wasm | Bin 0 -> 44 bytes tests/gen/binary.69.wasm | Bin 0 -> 11 bytes tests/gen/binary.7.wasm | Bin 0 -> 4 bytes tests/gen/binary.70.wasm | Bin 0 -> 14 bytes tests/gen/binary.71.wasm | Bin 0 -> 17 bytes tests/gen/binary.72.wasm | Bin 0 -> 18 bytes tests/gen/binary.73.wasm | Bin 0 -> 14 bytes tests/gen/binary.74.wasm | Bin 0 -> 15 bytes tests/gen/binary.75.wasm | Bin 0 -> 14 bytes tests/gen/binary.76.wasm | Bin 0 -> 15 bytes tests/gen/binary.77.wasm | Bin 0 -> 14 bytes tests/gen/binary.78.wasm | Bin 0 -> 15 bytes tests/gen/binary.79.wasm | Bin 0 -> 39 bytes tests/gen/binary.8.wasm | Bin 0 -> 4 bytes tests/gen/binary.80.wasm | Bin 0 -> 64 bytes tests/gen/binary.81.wasm | Bin 0 -> 11 bytes tests/gen/binary.82.wasm | Bin 0 -> 11 bytes tests/gen/binary.83.wasm | Bin 0 -> 13 bytes tests/gen/binary.84.wasm | Bin 0 -> 14 bytes tests/gen/binary.85.wasm | Bin 0 -> 16 bytes tests/gen/binary.86.wasm | Bin 0 -> 11 bytes tests/gen/binary.87.wasm | Bin 0 -> 11 bytes tests/gen/binary.88.wasm | Bin 0 -> 12 bytes tests/gen/binary.89.wasm | Bin 0 -> 13 bytes tests/gen/binary.9.wasm | Bin 0 -> 8 bytes tests/gen/binary.90.wasm | Bin 0 -> 15 bytes tests/gen/binary.91.wasm | Bin 0 -> 15 bytes tests/gen/binary.92.wasm | Bin 0 -> 11 bytes tests/gen/binary.93.wasm | Bin 0 -> 16 bytes tests/gen/binary.94.wasm | Bin 0 -> 21 bytes tests/gen/binary.95.wasm | Bin 0 -> 31 bytes tests/gen/binary.96.wasm | Bin 0 -> 36 bytes tests/gen/binary.97.wasm | Bin 0 -> 41 bytes tests/gen/binary.98.wasm | Bin 0 -> 33 bytes tests/gen/binary.99.wasm | Bin 0 -> 33 bytes tests/gen/binary.json | 135 ++ tests/gen/global.17.wasm | Bin 21 -> 21 bytes tests/gen/global.18.wasm | Bin 38 -> 21 bytes tests/gen/global.19.wasm | Bin 42 -> 21 bytes tests/gen/global.20.wasm | Bin 34 -> 38 bytes tests/gen/global.21.wasm | Bin 38 -> 42 bytes tests/gen/global.22.wasm | Bin 38 -> 34 bytes tests/gen/global.23.wasm | Bin 16 -> 38 bytes tests/gen/global.24.wasm | Bin 20 -> 38 bytes tests/gen/global.25.wasm | Bin 20 -> 16 bytes tests/gen/global.26.wasm | Bin 27 -> 20 bytes tests/gen/global.27.wasm | Bin 35 -> 20 bytes tests/gen/global.28.wasm | Bin 53 -> 27 bytes tests/gen/global.29.wasm | Bin 61 -> 35 bytes tests/gen/global.30.wasm | Bin 28 -> 53 bytes tests/gen/global.31.wasm | Bin 36 -> 61 bytes tests/gen/global.32.wasm | Bin 54 -> 28 bytes tests/gen/global.33.wasm | Bin 62 -> 36 bytes tests/gen/global.34.wasm | Bin 34 -> 54 bytes tests/gen/global.35.wasm | Bin 39 -> 62 bytes tests/gen/global.36.wasm | Bin 39 -> 34 bytes tests/gen/global.37.wasm | Bin 41 -> 39 bytes tests/gen/global.38.wasm | Bin 44 -> 39 bytes tests/gen/global.39.wasm | Bin 41 -> 41 bytes tests/gen/global.40.wasm | Bin 41 -> 44 bytes tests/gen/global.41.wasm | Bin 42 -> 41 bytes tests/gen/global.42.wasm | Bin 35 -> 41 bytes tests/gen/global.43.wasm | Bin 39 -> 42 bytes tests/gen/global.44.wasm | Bin 47 -> 35 bytes tests/gen/global.45.wasm | Bin 69 -> 39 bytes tests/gen/global.46.wasm | Bin 0 -> 47 bytes tests/gen/global.46.wat | 1 - tests/gen/global.47.wasm | Bin 0 -> 69 bytes tests/gen/global.48.wat | 2 +- tests/gen/{global.47.wat => global.49.wat} | 0 tests/gen/global.50.wat | 1 + tests/gen/global.json | 200 +-- tests/gen/loop.0.wasm | Bin 1894 -> 1828 bytes tests/gen/loop.1.wat | 1 + tests/gen/loop.10.wat | 1 + tests/gen/loop.11.wat | 1 + tests/gen/loop.12.wasm | Bin 35 -> 29 bytes tests/gen/{loop.1.wasm => loop.13.wasm} | Bin tests/gen/{loop.2.wasm => loop.14.wasm} | Bin tests/gen/{loop.3.wasm => loop.15.wasm} | Bin tests/gen/{loop.4.wasm => loop.16.wasm} | Bin tests/gen/{loop.5.wasm => loop.17.wasm} | Bin tests/gen/loop.18.wasm | Bin 0 -> 31 bytes tests/gen/{loop.6.wasm => loop.19.wasm} | Bin tests/gen/loop.2.wat | 1 + tests/gen/loop.20.wasm | Bin 0 -> 29 bytes tests/gen/{loop.7.wasm => loop.21.wasm} | Bin tests/gen/loop.22.wasm | Bin 0 -> 30 bytes tests/gen/{loop.8.wasm => loop.23.wasm} | Bin tests/gen/loop.24.wasm | Bin 0 -> 31 bytes tests/gen/loop.25.wasm | Bin 0 -> 33 bytes tests/gen/loop.26.wasm | Bin 0 -> 32 bytes tests/gen/{loop.9.wasm => loop.27.wasm} | Bin tests/gen/{loop.10.wasm => loop.28.wasm} | Bin tests/gen/{loop.11.wasm => loop.29.wasm} | Bin tests/gen/loop.3.wat | 1 + tests/gen/loop.30.wasm | Bin 0 -> 35 bytes tests/gen/loop.31.wasm | Bin 0 -> 32 bytes tests/gen/loop.32.wasm | Bin 0 -> 34 bytes tests/gen/loop.33.wasm | Bin 0 -> 37 bytes tests/gen/loop.34.wasm | Bin 0 -> 39 bytes tests/gen/loop.35.wasm | Bin 0 -> 35 bytes tests/gen/loop.36.wasm | Bin 0 -> 37 bytes tests/gen/loop.37.wasm | Bin 0 -> 40 bytes tests/gen/loop.38.wasm | Bin 0 -> 42 bytes tests/gen/loop.39.wat | 1 + tests/gen/loop.4.wat | 1 + tests/gen/loop.40.wat | 1 + tests/gen/{loop.13.wat => loop.41.wat} | 0 tests/gen/{loop.14.wat => loop.42.wat} | 0 tests/gen/loop.5.wat | 1 + tests/gen/loop.6.wat | 1 + tests/gen/loop.7.wat | 1 + tests/gen/loop.8.wat | 1 + tests/gen/loop.9.wat | 1 + tests/gen/loop.json | 185 ++- tests/gen/memory.34.wasm | Bin 0 -> 121 bytes tests/gen/memory.json | 11 +- tests/gen/memory_trap.json | 13 +- tests/gen/select.0.wasm | Bin 1546 -> 1224 bytes tests/gen/select.1.wasm | Bin 30 -> 29 bytes tests/gen/select.10.wasm | Bin 35 -> 26 bytes tests/gen/select.11.wasm | Bin 35 -> 28 bytes tests/gen/select.12.wasm | Bin 35 -> 30 bytes tests/gen/select.13.wasm | Bin 35 -> 35 bytes tests/gen/select.14.wasm | Bin 35 -> 35 bytes tests/gen/select.15.wasm | Bin 35 -> 35 bytes tests/gen/select.16.wasm | Bin 35 -> 35 bytes tests/gen/select.17.wasm | Bin 32 -> 35 bytes tests/gen/select.18.wasm | Bin 35 -> 35 bytes tests/gen/select.19.wasm | Bin 39 -> 35 bytes tests/gen/select.20.wasm | Bin 32 -> 35 bytes tests/gen/select.21.wasm | Bin 33 -> 35 bytes tests/gen/select.22.wasm | Bin 33 -> 32 bytes tests/gen/select.23.wasm | Bin 33 -> 35 bytes tests/gen/select.24.wasm | Bin 31 -> 39 bytes tests/gen/select.25.wasm | Bin 29 -> 32 bytes tests/gen/select.26.wasm | Bin 31 -> 84 bytes tests/gen/select.5.wasm | Bin 26 -> 32 bytes tests/gen/select.6.wasm | Bin 28 -> 35 bytes tests/gen/select.7.wasm | Bin 30 -> 32 bytes tests/gen/select.8.wasm | Bin 35 -> 35 bytes tests/gen/select.9.wasm | Bin 35 -> 39 bytes tests/gen/select.json | 231 ++- tests/gen/type.3.wasm | Bin 16 -> 0 bytes tests/gen/type.4.wasm | Bin 16 -> 0 bytes tests/gen/type.json | 6 +- tests/gen/unreachable.0.wasm | Bin 0 -> 1744 bytes tests/gen/unreachable.json | 66 + tests/gen/unreached-invalid.0.wasm | Bin 0 -> 28 bytes tests/gen/unreached-invalid.1.wasm | Bin 0 -> 28 bytes ...lect.27.wasm => unreached-invalid.10.wasm} | Bin tests/gen/unreached-invalid.100.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.101.wasm | Bin 0 -> 40 bytes tests/gen/unreached-invalid.102.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.103.wasm | Bin 0 -> 32 bytes tests/gen/unreached-invalid.104.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.105.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.106.wasm | Bin 0 -> 32 bytes tests/gen/unreached-invalid.107.wasm | Bin 0 -> 29 bytes tests/gen/unreached-invalid.108.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.109.wasm | Bin 0 -> 29 bytes tests/gen/unreached-invalid.11.wasm | Bin 0 -> 28 bytes tests/gen/unreached-invalid.110.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.111.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.112.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.113.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.114.wasm | Bin 0 -> 29 bytes tests/gen/unreached-invalid.115.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.116.wasm | Bin 0 -> 26 bytes tests/gen/unreached-invalid.12.wasm | Bin 0 -> 30 bytes tests/gen/unreached-invalid.13.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.14.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.15.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.16.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.17.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.18.wasm | Bin 0 -> 37 bytes tests/gen/unreached-invalid.19.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.2.wasm | Bin 0 -> 27 bytes tests/gen/unreached-invalid.20.wasm | Bin 0 -> 37 bytes tests/gen/unreached-invalid.21.wasm | Bin 0 -> 28 bytes tests/gen/unreached-invalid.22.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.23.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.24.wasm | Bin 0 -> 32 bytes tests/gen/unreached-invalid.25.wasm | Bin 0 -> 32 bytes tests/gen/unreached-invalid.26.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.27.wasm | Bin 0 -> 30 bytes tests/gen/unreached-invalid.28.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.29.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.3.wasm | Bin 0 -> 27 bytes tests/gen/unreached-invalid.30.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.31.wasm | Bin 0 -> 27 bytes tests/gen/unreached-invalid.32.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.33.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.34.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.35.wasm | Bin 0 -> 30 bytes tests/gen/unreached-invalid.36.wasm | Bin 0 -> 32 bytes tests/gen/unreached-invalid.37.wasm | Bin 0 -> 32 bytes tests/gen/unreached-invalid.38.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.39.wasm | Bin 0 -> 30 bytes tests/gen/unreached-invalid.4.wasm | Bin 0 -> 29 bytes tests/gen/unreached-invalid.40.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.41.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.42.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.43.wasm | Bin 0 -> 27 bytes tests/gen/unreached-invalid.44.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.45.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.46.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.47.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.48.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.49.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.5.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.50.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.51.wasm | Bin 0 -> 37 bytes tests/gen/unreached-invalid.52.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.53.wasm | Bin 0 -> 39 bytes tests/gen/unreached-invalid.54.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.55.wasm | Bin 0 -> 37 bytes tests/gen/unreached-invalid.56.wasm | Bin 0 -> 30 bytes tests/gen/unreached-invalid.57.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.58.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.59.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.6.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.60.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.61.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.62.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.63.wasm | Bin 0 -> 40 bytes tests/gen/unreached-invalid.64.wasm | Bin 0 -> 37 bytes tests/gen/unreached-invalid.65.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.66.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.67.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.68.wasm | Bin 0 -> 32 bytes tests/gen/unreached-invalid.69.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.7.wasm | Bin 0 -> 27 bytes tests/gen/unreached-invalid.70.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.71.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.72.wasm | Bin 0 -> 31 bytes tests/gen/unreached-invalid.73.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.74.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.75.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.76.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.77.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.78.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.79.wasm | Bin 0 -> 43 bytes tests/gen/unreached-invalid.8.wasm | Bin 0 -> 26 bytes tests/gen/unreached-invalid.80.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.81.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.82.wasm | Bin 0 -> 41 bytes tests/gen/unreached-invalid.83.wasm | Bin 0 -> 37 bytes tests/gen/unreached-invalid.84.wasm | Bin 0 -> 36 bytes tests/gen/unreached-invalid.85.wasm | Bin 0 -> 39 bytes tests/gen/unreached-invalid.86.wasm | Bin 0 -> 39 bytes tests/gen/unreached-invalid.87.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.88.wasm | Bin 0 -> 32 bytes tests/gen/unreached-invalid.89.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.9.wasm | Bin 0 -> 28 bytes tests/gen/unreached-invalid.90.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.91.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.92.wasm | Bin 0 -> 35 bytes tests/gen/unreached-invalid.93.wasm | Bin 0 -> 37 bytes tests/gen/unreached-invalid.94.wasm | Bin 0 -> 37 bytes tests/gen/unreached-invalid.95.wasm | Bin 0 -> 38 bytes tests/gen/unreached-invalid.96.wasm | Bin 0 -> 40 bytes tests/gen/unreached-invalid.97.wasm | Bin 0 -> 39 bytes tests/gen/unreached-invalid.98.wasm | Bin 0 -> 33 bytes tests/gen/unreached-invalid.99.wasm | Bin 0 -> 34 bytes tests/gen/unreached-invalid.json | 119 ++ tests/gen/unreached-valid.0.wasm | Bin 0 -> 249 bytes tests/gen/unreached-valid.1.wasm | Bin 0 -> 66 bytes tests/gen/unreached-valid.json | 9 + tests/global.wast | 41 + tests/if.wast | 4 +- tests/local_get.wast | 1 + tests/local_set.wast | 1 + tests/loop.wast | 351 ++++- tests/memory.wast | 67 +- tests/memory_trap.wast | 14 +- tests/return.wast | 1 + tests/select.wast | 1024 ++++++------ tests/stack.wast | 2 + tests/start.wast | 210 +-- tests/type.wast | 15 +- tests/unreachable.wast | 304 ++++ tests/unreached-invalid.wast | 751 +++++++++ tests/unreached-valid.wast | 64 + 531 files changed, 6172 insertions(+), 1018 deletions(-) create mode 100644 tests/binary-leb128.wast create mode 100644 tests/binary.wast create mode 100644 tests/gen/assert_binary-leb128.0.c create mode 100644 tests/gen/assert_binary-leb128.1.c create mode 100644 tests/gen/assert_binary-leb128.10.c create mode 100644 tests/gen/assert_binary-leb128.11.c create mode 100644 tests/gen/assert_binary-leb128.12.c create mode 100644 tests/gen/assert_binary-leb128.13.c create mode 100644 tests/gen/assert_binary-leb128.14.c create mode 100644 tests/gen/assert_binary-leb128.15.c create mode 100644 tests/gen/assert_binary-leb128.16.c create mode 100644 tests/gen/assert_binary-leb128.17.c create mode 100644 tests/gen/assert_binary-leb128.18.c create mode 100644 tests/gen/assert_binary-leb128.19.c create mode 100644 tests/gen/assert_binary-leb128.2.c create mode 100644 tests/gen/assert_binary-leb128.20.c create mode 100644 tests/gen/assert_binary-leb128.21.c create mode 100644 tests/gen/assert_binary-leb128.22.c create mode 100644 tests/gen/assert_binary-leb128.23.c create mode 100644 tests/gen/assert_binary-leb128.3.c create mode 100644 tests/gen/assert_binary-leb128.4.c create mode 100644 tests/gen/assert_binary-leb128.5.c create mode 100644 tests/gen/assert_binary-leb128.6.c create mode 100644 tests/gen/assert_binary-leb128.7.c create mode 100644 tests/gen/assert_binary-leb128.8.c create mode 100644 tests/gen/assert_binary-leb128.80.c create mode 100644 tests/gen/assert_binary-leb128.82.c create mode 100644 tests/gen/assert_binary-leb128.83.c create mode 100644 tests/gen/assert_binary-leb128.84.c create mode 100644 tests/gen/assert_binary-leb128.9.c create mode 100644 tests/gen/assert_binary.0.c create mode 100644 tests/gen/assert_binary.1.c create mode 100644 tests/gen/assert_binary.102.c create mode 100644 tests/gen/assert_binary.107.c create mode 100644 tests/gen/assert_binary.109.c create mode 100644 tests/gen/assert_binary.2.c create mode 100644 tests/gen/assert_binary.3.c create mode 100644 tests/gen/assert_binary.55.c create mode 100644 tests/gen/assert_binary.60.c create mode 100644 tests/gen/assert_binary.61.c create mode 100644 tests/gen/assert_binary.69.c create mode 100644 tests/gen/assert_binary.72.c create mode 100644 tests/gen/assert_binary.81.c create mode 100644 tests/gen/assert_binary.86.c create mode 100644 tests/gen/assert_binary.92.c create mode 100644 tests/gen/assert_binary.95.c create mode 100644 tests/gen/assert_binary.98.c delete mode 100644 tests/gen/assert_global.20.c create mode 100644 tests/gen/assert_global.22.c delete mode 100644 tests/gen/assert_global.23.c create mode 100644 tests/gen/assert_global.25.c create mode 100644 tests/gen/assert_memory.34.c create mode 100644 tests/gen/assert_select.26.c create mode 100644 tests/gen/assert_unreachable.0.c create mode 100644 tests/gen/assert_unreached-valid.0.c create mode 100644 tests/gen/assert_unreached-valid.1.c create mode 100644 tests/gen/binary-leb128.0.wasm create mode 100644 tests/gen/binary-leb128.1.wasm create mode 100644 tests/gen/binary-leb128.10.wasm create mode 100644 tests/gen/binary-leb128.11.wasm create mode 100644 tests/gen/binary-leb128.12.wasm create mode 100644 tests/gen/binary-leb128.13.wasm create mode 100644 tests/gen/binary-leb128.14.wasm create mode 100644 tests/gen/binary-leb128.15.wasm create mode 100644 tests/gen/binary-leb128.16.wasm create mode 100644 tests/gen/binary-leb128.17.wasm create mode 100644 tests/gen/binary-leb128.18.wasm create mode 100644 tests/gen/binary-leb128.19.wasm create mode 100644 tests/gen/binary-leb128.2.wasm create mode 100644 tests/gen/binary-leb128.20.wasm create mode 100644 tests/gen/binary-leb128.21.wasm create mode 100644 tests/gen/binary-leb128.22.wasm create mode 100644 tests/gen/binary-leb128.23.wasm create mode 100644 tests/gen/binary-leb128.24.wasm create mode 100644 tests/gen/binary-leb128.25.wasm create mode 100644 tests/gen/binary-leb128.26.wasm create mode 100644 tests/gen/binary-leb128.27.wasm create mode 100644 tests/gen/binary-leb128.28.wasm create mode 100644 tests/gen/binary-leb128.29.wasm create mode 100644 tests/gen/binary-leb128.3.wasm create mode 100644 tests/gen/binary-leb128.30.wasm create mode 100644 tests/gen/binary-leb128.31.wasm create mode 100644 tests/gen/binary-leb128.32.wasm create mode 100644 tests/gen/binary-leb128.33.wasm create mode 100644 tests/gen/binary-leb128.34.wasm create mode 100644 tests/gen/binary-leb128.35.wasm create mode 100644 tests/gen/binary-leb128.36.wasm create mode 100644 tests/gen/binary-leb128.37.wasm create mode 100644 tests/gen/binary-leb128.38.wasm create mode 100644 tests/gen/binary-leb128.39.wasm create mode 100644 tests/gen/binary-leb128.4.wasm create mode 100644 tests/gen/binary-leb128.40.wasm create mode 100644 tests/gen/binary-leb128.41.wasm create mode 100644 tests/gen/binary-leb128.42.wasm create mode 100644 tests/gen/binary-leb128.43.wasm create mode 100644 tests/gen/binary-leb128.44.wasm create mode 100644 tests/gen/binary-leb128.45.wasm create mode 100644 tests/gen/binary-leb128.46.wasm create mode 100644 tests/gen/binary-leb128.47.wasm create mode 100644 tests/gen/binary-leb128.48.wasm create mode 100644 tests/gen/binary-leb128.49.wasm create mode 100644 tests/gen/binary-leb128.5.wasm create mode 100644 tests/gen/binary-leb128.50.wasm create mode 100644 tests/gen/binary-leb128.51.wasm create mode 100644 tests/gen/binary-leb128.52.wasm create mode 100644 tests/gen/binary-leb128.53.wasm create mode 100644 tests/gen/binary-leb128.54.wasm create mode 100644 tests/gen/binary-leb128.55.wasm create mode 100644 tests/gen/binary-leb128.56.wasm create mode 100644 tests/gen/binary-leb128.57.wasm create mode 100644 tests/gen/binary-leb128.58.wasm create mode 100644 tests/gen/binary-leb128.59.wasm create mode 100644 tests/gen/binary-leb128.6.wasm create mode 100644 tests/gen/binary-leb128.60.wasm create mode 100644 tests/gen/binary-leb128.61.wasm create mode 100644 tests/gen/binary-leb128.62.wasm create mode 100644 tests/gen/binary-leb128.63.wasm create mode 100644 tests/gen/binary-leb128.64.wasm create mode 100644 tests/gen/binary-leb128.65.wasm create mode 100644 tests/gen/binary-leb128.66.wasm create mode 100644 tests/gen/binary-leb128.67.wasm create mode 100644 tests/gen/binary-leb128.68.wasm create mode 100644 tests/gen/binary-leb128.69.wasm create mode 100644 tests/gen/binary-leb128.7.wasm create mode 100644 tests/gen/binary-leb128.70.wasm create mode 100644 tests/gen/binary-leb128.71.wasm create mode 100644 tests/gen/binary-leb128.72.wasm create mode 100644 tests/gen/binary-leb128.73.wasm create mode 100644 tests/gen/binary-leb128.74.wasm create mode 100644 tests/gen/binary-leb128.75.wasm create mode 100644 tests/gen/binary-leb128.76.wasm create mode 100644 tests/gen/binary-leb128.77.wasm create mode 100644 tests/gen/binary-leb128.78.wasm create mode 100644 tests/gen/binary-leb128.79.wasm create mode 100644 tests/gen/binary-leb128.8.wasm create mode 100644 tests/gen/binary-leb128.80.wasm create mode 100644 tests/gen/binary-leb128.81.wasm create mode 100644 tests/gen/binary-leb128.82.wasm create mode 100644 tests/gen/binary-leb128.83.wasm create mode 100644 tests/gen/binary-leb128.84.wasm create mode 100644 tests/gen/binary-leb128.85.wasm create mode 100644 tests/gen/binary-leb128.9.wasm create mode 100644 tests/gen/binary-leb128.json create mode 100644 tests/gen/binary.0.wasm create mode 100644 tests/gen/binary.1.wasm create mode 100644 tests/gen/binary.10.wasm create mode 100644 tests/gen/binary.100.wasm create mode 100644 tests/gen/binary.101.wasm create mode 100644 tests/gen/binary.102.wasm create mode 100644 tests/gen/binary.103.wasm create mode 100644 tests/gen/binary.104.wasm create mode 100644 tests/gen/binary.105.wasm create mode 100644 tests/gen/binary.106.wasm create mode 100644 tests/gen/binary.107.wasm create mode 100644 tests/gen/binary.108.wasm create mode 100644 tests/gen/binary.109.wasm create mode 100644 tests/gen/binary.11.wasm create mode 100644 tests/gen/binary.110.wasm create mode 100644 tests/gen/binary.111.wasm create mode 100644 tests/gen/binary.112.wasm create mode 100644 tests/gen/binary.113.wasm create mode 100644 tests/gen/binary.114.wasm create mode 100644 tests/gen/binary.115.wasm create mode 100644 tests/gen/binary.116.wasm create mode 100644 tests/gen/binary.117.wasm create mode 100644 tests/gen/binary.118.wasm create mode 100644 tests/gen/binary.119.wasm create mode 100644 tests/gen/binary.12.wasm create mode 100644 tests/gen/binary.120.wasm create mode 100644 tests/gen/binary.121.wasm create mode 100644 tests/gen/binary.122.wasm create mode 100644 tests/gen/binary.123.wasm create mode 100644 tests/gen/binary.124.wasm create mode 100644 tests/gen/binary.125.wasm create mode 100644 tests/gen/binary.126.wasm create mode 100644 tests/gen/binary.127.wasm create mode 100644 tests/gen/binary.128.wasm create mode 100644 tests/gen/binary.129.wasm create mode 100644 tests/gen/binary.13.wasm create mode 100644 tests/gen/binary.130.wasm create mode 100644 tests/gen/binary.131.wasm create mode 100644 tests/gen/binary.132.wasm create mode 100644 tests/gen/binary.14.wasm create mode 100644 tests/gen/binary.15.wasm create mode 100644 tests/gen/binary.16.wasm create mode 100644 tests/gen/binary.17.wasm create mode 100644 tests/gen/binary.18.wasm create mode 100644 tests/gen/binary.19.wasm create mode 100644 tests/gen/binary.2.wasm create mode 100644 tests/gen/binary.20.wasm create mode 100644 tests/gen/binary.21.wasm create mode 100644 tests/gen/binary.22.wasm create mode 100644 tests/gen/binary.23.wasm create mode 100644 tests/gen/binary.24.wasm create mode 100644 tests/gen/binary.25.wasm create mode 100644 tests/gen/binary.26.wasm create mode 100644 tests/gen/binary.27.wasm create mode 100644 tests/gen/binary.28.wasm create mode 100644 tests/gen/binary.29.wasm create mode 100644 tests/gen/binary.3.wasm create mode 100644 tests/gen/binary.30.wasm create mode 100644 tests/gen/binary.31.wasm create mode 100644 tests/gen/binary.32.wasm create mode 100644 tests/gen/binary.33.wasm create mode 100644 tests/gen/binary.34.wasm create mode 100644 tests/gen/binary.35.wasm create mode 100644 tests/gen/binary.36.wasm create mode 100644 tests/gen/binary.37.wasm create mode 100644 tests/gen/binary.38.wasm create mode 100644 tests/gen/binary.39.wasm create mode 100644 tests/gen/binary.4.wasm create mode 100644 tests/gen/binary.40.wasm create mode 100644 tests/gen/binary.41.wasm create mode 100644 tests/gen/binary.42.wasm create mode 100644 tests/gen/binary.43.wasm create mode 100644 tests/gen/binary.44.wasm create mode 100644 tests/gen/binary.45.wasm create mode 100644 tests/gen/binary.46.wasm create mode 100644 tests/gen/binary.47.wasm create mode 100644 tests/gen/binary.48.wasm create mode 100644 tests/gen/binary.49.wasm create mode 100644 tests/gen/binary.5.wasm create mode 100644 tests/gen/binary.50.wasm create mode 100644 tests/gen/binary.51.wasm create mode 100644 tests/gen/binary.52.wasm create mode 100644 tests/gen/binary.53.wasm create mode 100644 tests/gen/binary.54.wasm create mode 100644 tests/gen/binary.55.wasm create mode 100644 tests/gen/binary.56.wasm create mode 100644 tests/gen/binary.57.wasm create mode 100644 tests/gen/binary.58.wasm create mode 100644 tests/gen/binary.59.wasm create mode 100644 tests/gen/binary.6.wasm create mode 100644 tests/gen/binary.60.wasm create mode 100644 tests/gen/binary.61.wasm create mode 100644 tests/gen/binary.62.wasm create mode 100644 tests/gen/binary.63.wasm create mode 100644 tests/gen/binary.64.wasm create mode 100644 tests/gen/binary.65.wasm create mode 100644 tests/gen/binary.66.wasm create mode 100644 tests/gen/binary.67.wasm create mode 100644 tests/gen/binary.68.wasm create mode 100644 tests/gen/binary.69.wasm create mode 100644 tests/gen/binary.7.wasm create mode 100644 tests/gen/binary.70.wasm create mode 100644 tests/gen/binary.71.wasm create mode 100644 tests/gen/binary.72.wasm create mode 100644 tests/gen/binary.73.wasm create mode 100644 tests/gen/binary.74.wasm create mode 100644 tests/gen/binary.75.wasm create mode 100644 tests/gen/binary.76.wasm create mode 100644 tests/gen/binary.77.wasm create mode 100644 tests/gen/binary.78.wasm create mode 100644 tests/gen/binary.79.wasm create mode 100644 tests/gen/binary.8.wasm create mode 100644 tests/gen/binary.80.wasm create mode 100644 tests/gen/binary.81.wasm create mode 100644 tests/gen/binary.82.wasm create mode 100644 tests/gen/binary.83.wasm create mode 100644 tests/gen/binary.84.wasm create mode 100644 tests/gen/binary.85.wasm create mode 100644 tests/gen/binary.86.wasm create mode 100644 tests/gen/binary.87.wasm create mode 100644 tests/gen/binary.88.wasm create mode 100644 tests/gen/binary.89.wasm create mode 100644 tests/gen/binary.9.wasm create mode 100644 tests/gen/binary.90.wasm create mode 100644 tests/gen/binary.91.wasm create mode 100644 tests/gen/binary.92.wasm create mode 100644 tests/gen/binary.93.wasm create mode 100644 tests/gen/binary.94.wasm create mode 100644 tests/gen/binary.95.wasm create mode 100644 tests/gen/binary.96.wasm create mode 100644 tests/gen/binary.97.wasm create mode 100644 tests/gen/binary.98.wasm create mode 100644 tests/gen/binary.99.wasm create mode 100644 tests/gen/binary.json create mode 100644 tests/gen/global.46.wasm delete mode 100644 tests/gen/global.46.wat create mode 100644 tests/gen/global.47.wasm rename tests/gen/{global.47.wat => global.49.wat} (100%) create mode 100644 tests/gen/global.50.wat create mode 100644 tests/gen/loop.1.wat create mode 100644 tests/gen/loop.10.wat create mode 100644 tests/gen/loop.11.wat rename tests/gen/{loop.1.wasm => loop.13.wasm} (100%) rename tests/gen/{loop.2.wasm => loop.14.wasm} (100%) rename tests/gen/{loop.3.wasm => loop.15.wasm} (100%) rename tests/gen/{loop.4.wasm => loop.16.wasm} (100%) rename tests/gen/{loop.5.wasm => loop.17.wasm} (100%) create mode 100644 tests/gen/loop.18.wasm rename tests/gen/{loop.6.wasm => loop.19.wasm} (100%) create mode 100644 tests/gen/loop.2.wat create mode 100644 tests/gen/loop.20.wasm rename tests/gen/{loop.7.wasm => loop.21.wasm} (100%) create mode 100644 tests/gen/loop.22.wasm rename tests/gen/{loop.8.wasm => loop.23.wasm} (100%) create mode 100644 tests/gen/loop.24.wasm create mode 100644 tests/gen/loop.25.wasm create mode 100644 tests/gen/loop.26.wasm rename tests/gen/{loop.9.wasm => loop.27.wasm} (100%) rename tests/gen/{loop.10.wasm => loop.28.wasm} (100%) rename tests/gen/{loop.11.wasm => loop.29.wasm} (100%) create mode 100644 tests/gen/loop.3.wat create mode 100644 tests/gen/loop.30.wasm create mode 100644 tests/gen/loop.31.wasm create mode 100644 tests/gen/loop.32.wasm create mode 100644 tests/gen/loop.33.wasm create mode 100644 tests/gen/loop.34.wasm create mode 100644 tests/gen/loop.35.wasm create mode 100644 tests/gen/loop.36.wasm create mode 100644 tests/gen/loop.37.wasm create mode 100644 tests/gen/loop.38.wasm create mode 100644 tests/gen/loop.39.wat create mode 100644 tests/gen/loop.4.wat create mode 100644 tests/gen/loop.40.wat rename tests/gen/{loop.13.wat => loop.41.wat} (100%) rename tests/gen/{loop.14.wat => loop.42.wat} (100%) create mode 100644 tests/gen/loop.5.wat create mode 100644 tests/gen/loop.6.wat create mode 100644 tests/gen/loop.7.wat create mode 100644 tests/gen/loop.8.wat create mode 100644 tests/gen/loop.9.wat create mode 100644 tests/gen/memory.34.wasm delete mode 100644 tests/gen/type.3.wasm delete mode 100644 tests/gen/type.4.wasm create mode 100644 tests/gen/unreachable.0.wasm create mode 100644 tests/gen/unreachable.json create mode 100644 tests/gen/unreached-invalid.0.wasm create mode 100644 tests/gen/unreached-invalid.1.wasm rename tests/gen/{select.27.wasm => unreached-invalid.10.wasm} (100%) create mode 100644 tests/gen/unreached-invalid.100.wasm create mode 100644 tests/gen/unreached-invalid.101.wasm create mode 100644 tests/gen/unreached-invalid.102.wasm create mode 100644 tests/gen/unreached-invalid.103.wasm create mode 100644 tests/gen/unreached-invalid.104.wasm create mode 100644 tests/gen/unreached-invalid.105.wasm create mode 100644 tests/gen/unreached-invalid.106.wasm create mode 100644 tests/gen/unreached-invalid.107.wasm create mode 100644 tests/gen/unreached-invalid.108.wasm create mode 100644 tests/gen/unreached-invalid.109.wasm create mode 100644 tests/gen/unreached-invalid.11.wasm create mode 100644 tests/gen/unreached-invalid.110.wasm create mode 100644 tests/gen/unreached-invalid.111.wasm create mode 100644 tests/gen/unreached-invalid.112.wasm create mode 100644 tests/gen/unreached-invalid.113.wasm create mode 100644 tests/gen/unreached-invalid.114.wasm create mode 100644 tests/gen/unreached-invalid.115.wasm create mode 100644 tests/gen/unreached-invalid.116.wasm create mode 100644 tests/gen/unreached-invalid.12.wasm create mode 100644 tests/gen/unreached-invalid.13.wasm create mode 100644 tests/gen/unreached-invalid.14.wasm create mode 100644 tests/gen/unreached-invalid.15.wasm create mode 100644 tests/gen/unreached-invalid.16.wasm create mode 100644 tests/gen/unreached-invalid.17.wasm create mode 100644 tests/gen/unreached-invalid.18.wasm create mode 100644 tests/gen/unreached-invalid.19.wasm create mode 100644 tests/gen/unreached-invalid.2.wasm create mode 100644 tests/gen/unreached-invalid.20.wasm create mode 100644 tests/gen/unreached-invalid.21.wasm create mode 100644 tests/gen/unreached-invalid.22.wasm create mode 100644 tests/gen/unreached-invalid.23.wasm create mode 100644 tests/gen/unreached-invalid.24.wasm create mode 100644 tests/gen/unreached-invalid.25.wasm create mode 100644 tests/gen/unreached-invalid.26.wasm create mode 100644 tests/gen/unreached-invalid.27.wasm create mode 100644 tests/gen/unreached-invalid.28.wasm create mode 100644 tests/gen/unreached-invalid.29.wasm create mode 100644 tests/gen/unreached-invalid.3.wasm create mode 100644 tests/gen/unreached-invalid.30.wasm create mode 100644 tests/gen/unreached-invalid.31.wasm create mode 100644 tests/gen/unreached-invalid.32.wasm create mode 100644 tests/gen/unreached-invalid.33.wasm create mode 100644 tests/gen/unreached-invalid.34.wasm create mode 100644 tests/gen/unreached-invalid.35.wasm create mode 100644 tests/gen/unreached-invalid.36.wasm create mode 100644 tests/gen/unreached-invalid.37.wasm create mode 100644 tests/gen/unreached-invalid.38.wasm create mode 100644 tests/gen/unreached-invalid.39.wasm create mode 100644 tests/gen/unreached-invalid.4.wasm create mode 100644 tests/gen/unreached-invalid.40.wasm create mode 100644 tests/gen/unreached-invalid.41.wasm create mode 100644 tests/gen/unreached-invalid.42.wasm create mode 100644 tests/gen/unreached-invalid.43.wasm create mode 100644 tests/gen/unreached-invalid.44.wasm create mode 100644 tests/gen/unreached-invalid.45.wasm create mode 100644 tests/gen/unreached-invalid.46.wasm create mode 100644 tests/gen/unreached-invalid.47.wasm create mode 100644 tests/gen/unreached-invalid.48.wasm create mode 100644 tests/gen/unreached-invalid.49.wasm create mode 100644 tests/gen/unreached-invalid.5.wasm create mode 100644 tests/gen/unreached-invalid.50.wasm create mode 100644 tests/gen/unreached-invalid.51.wasm create mode 100644 tests/gen/unreached-invalid.52.wasm create mode 100644 tests/gen/unreached-invalid.53.wasm create mode 100644 tests/gen/unreached-invalid.54.wasm create mode 100644 tests/gen/unreached-invalid.55.wasm create mode 100644 tests/gen/unreached-invalid.56.wasm create mode 100644 tests/gen/unreached-invalid.57.wasm create mode 100644 tests/gen/unreached-invalid.58.wasm create mode 100644 tests/gen/unreached-invalid.59.wasm create mode 100644 tests/gen/unreached-invalid.6.wasm create mode 100644 tests/gen/unreached-invalid.60.wasm create mode 100644 tests/gen/unreached-invalid.61.wasm create mode 100644 tests/gen/unreached-invalid.62.wasm create mode 100644 tests/gen/unreached-invalid.63.wasm create mode 100644 tests/gen/unreached-invalid.64.wasm create mode 100644 tests/gen/unreached-invalid.65.wasm create mode 100644 tests/gen/unreached-invalid.66.wasm create mode 100644 tests/gen/unreached-invalid.67.wasm create mode 100644 tests/gen/unreached-invalid.68.wasm create mode 100644 tests/gen/unreached-invalid.69.wasm create mode 100644 tests/gen/unreached-invalid.7.wasm create mode 100644 tests/gen/unreached-invalid.70.wasm create mode 100644 tests/gen/unreached-invalid.71.wasm create mode 100644 tests/gen/unreached-invalid.72.wasm create mode 100644 tests/gen/unreached-invalid.73.wasm create mode 100644 tests/gen/unreached-invalid.74.wasm create mode 100644 tests/gen/unreached-invalid.75.wasm create mode 100644 tests/gen/unreached-invalid.76.wasm create mode 100644 tests/gen/unreached-invalid.77.wasm create mode 100644 tests/gen/unreached-invalid.78.wasm create mode 100644 tests/gen/unreached-invalid.79.wasm create mode 100644 tests/gen/unreached-invalid.8.wasm create mode 100644 tests/gen/unreached-invalid.80.wasm create mode 100644 tests/gen/unreached-invalid.81.wasm create mode 100644 tests/gen/unreached-invalid.82.wasm create mode 100644 tests/gen/unreached-invalid.83.wasm create mode 100644 tests/gen/unreached-invalid.84.wasm create mode 100644 tests/gen/unreached-invalid.85.wasm create mode 100644 tests/gen/unreached-invalid.86.wasm create mode 100644 tests/gen/unreached-invalid.87.wasm create mode 100644 tests/gen/unreached-invalid.88.wasm create mode 100644 tests/gen/unreached-invalid.89.wasm create mode 100644 tests/gen/unreached-invalid.9.wasm create mode 100644 tests/gen/unreached-invalid.90.wasm create mode 100644 tests/gen/unreached-invalid.91.wasm create mode 100644 tests/gen/unreached-invalid.92.wasm create mode 100644 tests/gen/unreached-invalid.93.wasm create mode 100644 tests/gen/unreached-invalid.94.wasm create mode 100644 tests/gen/unreached-invalid.95.wasm create mode 100644 tests/gen/unreached-invalid.96.wasm create mode 100644 tests/gen/unreached-invalid.97.wasm create mode 100644 tests/gen/unreached-invalid.98.wasm create mode 100644 tests/gen/unreached-invalid.99.wasm create mode 100644 tests/gen/unreached-invalid.json create mode 100644 tests/gen/unreached-valid.0.wasm create mode 100644 tests/gen/unreached-valid.1.wasm create mode 100644 tests/gen/unreached-valid.json mode change 100755 => 100644 tests/select.wast mode change 100755 => 100644 tests/start.wast create mode 100644 tests/unreachable.wast create mode 100644 tests/unreached-invalid.wast create mode 100644 tests/unreached-valid.wast diff --git a/tests/binary-leb128.wast b/tests/binary-leb128.wast new file mode 100644 index 0000000..154f6bd --- /dev/null +++ b/tests/binary-leb128.wast @@ -0,0 +1,1084 @@ +;; Unsigned LEB128 can have non-minimal length +(module binary + "\00asm" "\01\00\00\00" + "\05\04\01" ;; Memory section with 1 entry + "\00\82\00" ;; no max, minimum 2 +) +(module binary + "\00asm" "\01\00\00\00" + "\05\07\01" ;; Memory section with 1 entry + "\00\82\80\80\80\00" ;; no max, minimum 2 +) +(module binary + "\00asm" "\01\00\00\00" + "\05\06\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\00" ;; max 2 +) +(module binary + "\00asm" "\01\00\00\00" + "\05\09\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\80\80\80\00" ;; max 2 +) +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\07\01" ;; Data section with 1 entry + "\80\00" ;; Memory index 0, encoded with 2 bytes + "\41\00\0b\00" ;; (i32.const 0) with contents "" +) +;; W2C2: No support for multiple tables +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\09\01" ;; Element section with 1 entry +;; "\02" ;; Element with explicit table index +;; "\80\00" ;; Table index 0, encoded with 2 bytes +;; "\41\00\0b\00\00" ;; (i32.const 0) with no elements +;; ) +(module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\8a\00" ;; section size 10, encoded with 2 bytes + "\01" ;; name byte count + "1" ;; name + "23456789" ;; sequence of bytes +) +(module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\0b" ;; section size + "\88\00" ;; name byte count 8, encoded with 2 bytes + "12345678" ;; name + "9" ;; sequence of bytes +) +(module binary + "\00asm" "\01\00\00\00" + "\01\08\01" ;; type section + "\60" ;; func type + "\82\00" ;; num params 2, encoded with 2 bytes + "\7f\7e" ;; param type + "\01" ;; num results + "\7f" ;; result type +) +(module binary + "\00asm" "\01\00\00\00" + "\01\08\01" ;; type section + "\60" ;; func type + "\02" ;; num params + "\7f\7e" ;; param type + "\81\00" ;; num results 1, encoded with 2 bytes + "\7f" ;; result type +) +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\17\01" ;; import section + "\88\00" ;; module name length 8, encoded with 2 bytes + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index +) +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\17\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\89\00" ;; entity name length 9, encoded with 2 bytes + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index +) +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\17\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length 9 + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\80\00" ;; import signature index, encoded with 2 bytes +) +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; function type + "\03\03\01" ;; function section + "\80\00" ;; function 0 signature index, encoded with 2 bytes + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body +) +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\07\01" ;; export section + "\82\00" ;; string length 2, encoded with 2 bytes + "\66\31" ;; export name f1 + "\00" ;; export kind + "\00" ;; export func index + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body +) +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\07\01" ;; export section + "\02" ;; string length 2 + "\66\31" ;; export name f1 + "\00" ;; export kind + "\80\00" ;; export func index, encoded with 2 bytes + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body +) +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\0a" ;; code section + "\05" ;; section size + "\81\00" ;; num functions, encoded with 2 bytes + "\02\00\0b" ;; function body +) + +;; Signed LEB128 can have non-minimal length +(module binary + "\00asm" "\01\00\00\00" + "\06\07\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\00" ;; i32.const 0 + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\07\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\7f" ;; i32.const -1 + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\80\80\80\00" ;; i32.const 0 + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\ff\ff\ff\7f" ;; i32.const -1 + "\0b" ;; end +) + +(module binary + "\00asm" "\01\00\00\00" + "\06\07\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\00" ;; i64.const 0 with unused bits set + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\07\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\7f" ;; i64.const -1 with unused bits unset + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\80\80\80\80\80\80\80\80\00" ;; i64.const 0 with unused bits set + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\7f" ;; i64.const -1 with unused bits unset + "\0b" ;; end +) + +;; Unsigned LEB128 must not be overlong +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\08\01" ;; Memory section with 1 entry + "\00\82\80\80\80\80\00" ;; no max, minimum 2 with one byte too many + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\0a\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\80\80\80\80\00" ;; max 2 with one byte too many + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\0b\01" ;; Data section with 1 entry + "\80\80\80\80\80\00" ;; Memory index 0 with one byte too many + "\41\00\0b\00" ;; (i32.const 0) with contents "" + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\04\01" ;; Table section with 1 entry + "\70\00\00" ;; no max, minimum 0, funcref + "\09\0b\01" ;; Element section with 1 entry + "\80\80\80\80\80\00" ;; Table index 0 with one byte too many + "\41\00\0b\00" ;; (i32.const 0) with no elements + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\83\80\80\80\80\00" ;; section size 3 with one byte too many + "\01" ;; name byte count + "1" ;; name + "2" ;; sequence of bytes + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\0A" ;; section size + "\83\80\80\80\80\00" ;; name byte count 3 with one byte too many + "123" ;; name + "4" ;; sequence of bytes + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\0c\01" ;; type section + "\60" ;; func type + "\82\80\80\80\80\00" ;; num params 2 with one byte too many + "\7f\7e" ;; param type + "\01" ;; num result + "\7f" ;; result type + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\0c\01" ;; type section + "\60" ;; func type + "\02" ;; num params + "\7f\7e" ;; param type + "\81\80\80\80\80\00" ;; num result 1 with one byte too many + "\7f" ;; result type + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1b\01" ;; import section + "\88\80\80\80\80\00" ;; module name length 8 with one byte too many + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1b\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\89\80\80\80\80\00" ;; entity name length 9 with one byte too many + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1b\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length 9 + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\80\80\80\80\80\00" ;; import signature index 0 with one byte too many + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; function type + "\03\03\01" ;; function section + "\80\80\80\80\80\00" ;; function 0 signature index with one byte too many + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\0b\01" ;; export section + "\82\80\80\80\80\00" ;; string length 2 with one byte too many + "\66\31" ;; export name f1 + "\00" ;; export kind + "\00" ;; export func index + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\0b\01" ;; export section + "\02" ;; string length 2 + "\66\31" ;; export name f1 + "\00" ;; export kind + "\80\80\80\80\80\00" ;; export func index 0 with one byte too many + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\0a" ;; code section + "\05" ;; section size + "\81\80\80\80\80\00" ;; num functions 1 with one byte too many + "\02\00\0b" ;; function body + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\80\00" ;; offset 2 with one byte too many + "\1a" ;; drop + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\82\80\80\80\80\00" ;; alignment 2 with one byte too many + "\00" ;; offset 0 + "\1a" ;; drop + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\12\01" ;; Code section + ;; function 0 + "\10\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\82\80\80\80\80\00" ;; alignment 2 with one byte too many + "\03" ;; offset 3 + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\12\01" ;; Code section + ;; function 0 + "\10\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\80\00" ;; offset 2 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) + +;; Signed LEB128 must not be overlong +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0b\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\80\80\80\80\00" ;; i32.const 0 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0b\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\ff\ff\ff\ff\7f" ;; i32.const -1 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\10\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\80\80\80\80\80\80\80\80\80\00" ;; i64.const 0 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\10\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\7f" ;; i64.const -1 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) + +;; Unsigned LEB128s zero-extend +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\07\01" ;; Memory section with 1 entry + "\00\82\80\80\80\70" ;; no max, minimum 2 with unused bits set + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\07\01" ;; Memory section with 1 entry + "\00\82\80\80\80\40" ;; no max, minimum 2 with some unused bits set + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\09\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\80\80\80\10" ;; max 2 with unused bits set + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\09\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\80\80\80\40" ;; max 2 with some unused bits set + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\0a\01" ;; Data section with 1 entry + "\80\80\80\80\10" ;; Memory index 0 with unused bits set + "\41\00\0b\00" ;; (i32.const 0) with contents "" + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\04\01" ;; Table section with 1 entry + "\70\00\00" ;; no max, minimum 0, funcref + "\09\0a\01" ;; Element section with 1 entry + "\80\80\80\80\10" ;; Table index 0 with unused bits set + "\41\00\0b\00" ;; (i32.const 0) with no elements + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\83\80\80\80\10" ;; section size 3 with unused bits set + "\01" ;; name byte count + "1" ;; name + "2" ;; sequence of bytes + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\09" ;; section size + "\83\80\80\80\40" ;; name byte count 3 with unused bits set + "123" ;; name + "4" ;; sequence of bytes + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\0b\01" ;; type section + "\60" ;; func type + "\82\80\80\80\10" ;; num params 2 with unused bits set + "\7f\7e" ;; param type + "\01" ;; num result + "\7f" ;; result type + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\0b\01" ;; type section + "\60" ;; func type + "\02" ;; num params + "\7f\7e" ;; param type + "\81\80\80\80\40" ;; num result 1 with unused bits set + "\7f" ;; result type + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1a\01" ;; import section + "\88\80\80\80\10" ;; module name length 8 with unused bits set + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1a\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\89\80\80\80\40" ;; entity name length 9 with unused bits set + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index + ) + "integer too large" +) +(assert_malformed +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1a\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length 9 + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\80\80\80\80\10" ;; import signature index 0 with unused bits set +) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; function type + "\03\06\01" ;; function section + "\80\80\80\80\10" ;; function 0 signature index with unused bits set + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer too large" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\0a\01" ;; export section + "\82\80\80\80\10" ;; string length 2 with unused bits set + "\66\31" ;; export name f1 + "\00" ;; export kind + "\00" ;; export func index + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\0a\01" ;; export section + "\02" ;; string length 2 + "\66\31" ;; export name f1 + "\00" ;; export kind + "\80\80\80\80\10" ;; export func index with unused bits set + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\0a" ;; code section + "\08" ;; section size + "\81\80\80\80\10" ;; num functions 1 with unused bits set + "\02\00\0b" ;; function body + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\10\01" ;; Code section + ;; function 0 + "\0e\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\10" ;; offset 2 with unused bits set + "\1a" ;; drop + "\0b" ;; end + ) + ;; TODO: This changes to "integer too large" with memory64. + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\10\01" ;; Code section + ;; function 0 + "\0e\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\40" ;; offset 2 with some unused bits set + "\1a" ;; drop + "\0b" ;; end + ) + ;; TODO: This changes to "integer too large" with memory64. + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\10\01" ;; Code section + "\0e\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\82\80\80\80\10" ;; alignment 2 with unused bits set + "\00" ;; offset 0 + "\1a" ;; drop + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\10\01" ;; Code section + ;; function 0 + "\0e\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\82\80\80\80\40" ;; alignment 2 with some unused bits set + "\00" ;; offset 0 + "\1a" ;; drop + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\82\80\80\80\10" ;; alignment 2 with unused bits set + "\03" ;; offset 3 + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\82\80\80\80\40" ;; alignment 2 with some unused bits set + "\03" ;; offset 3 + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\10" ;; offset 2 with unused bits set + "\0b" ;; end + ) + ;; TODO: This changes to "integer too large" with memory64. + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\40" ;; offset 2 with some unused bits set + "\0b" ;; end + ) + ;; TODO: This changes to "integer too large" with memory64. + "integer representation too long" +) + +;; Signed LEB128s sign-extend +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\80\80\80\70" ;; i32.const 0 with unused bits set + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\ff\ff\ff\0f" ;; i32.const -1 with unused bits unset + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\80\80\80\1f" ;; i32.const 0 with some unused bits set + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\ff\ff\ff\4f" ;; i32.const -1 with some unused bits unset + "\0b" ;; end + ) + "integer too large" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\80\80\80\80\80\80\80\80\7e" ;; i64.const 0 with unused bits set + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\01" ;; i64.const -1 with unused bits unset + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\80\80\80\80\80\80\80\80\02" ;; i64.const 0 with some unused bits set + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\41" ;; i64.const -1 with some unused bits unset + "\0b" ;; end + ) + "integer too large" +) + +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; empty function type + "\03\02\01" ;; function section + "\00" ;; function 0, type 0 + "\0a\1b\01\19" ;; code section + "\00" ;; no locals + "\00" ;; unreachable + "\fc\80\00" ;; i32_trunc_sat_f32_s with 2 bytes + "\00" ;; unreachable + "\fc\81\80\00" ;; i32_trunc_sat_f32_u with 3 bytes + "\00" ;; unreachable + "\fc\86\80\80\00" ;; i64_trunc_sat_f64_s with 4 bytes + "\00" ;; unreachable + "\fc\87\80\80\80\00" ;; i64_trunc_sat_f64_u with 5 bytes + "\00" ;; unreachable + "\0b" ;; end +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; empty function type + "\03\02\01" ;; function section + "\00" ;; function 0, type 0 + "\0a\0d\01\0b" ;; code section + "\00" ;; no locals + "\00" ;; unreachable + "\fc\87\80\80\80\80\00" ;; i64_trunc_sat_f64_u with 6 bytes + "\00" ;; unreachable + "\0b" ;; end + ) + "integer representation too long" +) + +;; Data segment tags and memory index can have non-minimal length +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\07\01" ;; Data section with 1 entry + "\80\00" ;; Active segment, encoded with 2 bytes + "\41\00\0b\00" ;; (i32.const 0) with contents "" +) +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\08\01" ;; Data section with 1 entry + "\82\00" ;; Active segment, encoded with 2 bytes + "\00" ;; explicit memory index + "\41\00\0b\00" ;; (i32.const 0) with contents "" +) +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\09\01" ;; Data section with 1 entry + "\82\00" ;; Active segment, encoded with 2 bytes + "\80\00" ;; explicit memory index, encoded with 2 bytes + "\41\00\0b\00" ;; (i32.const 0) with contents "" +) + +;; W2C2: No support for multiple tables +;; ;; Element segment tags and table index can have non-minimal length +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\07\01" ;; Element section with 1 entry +;; "\80\00" ;; Active segment +;; "\41\00\0b\00" ;; (i32.const 0) with no elements +;; ) +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\09\01" ;; Element section with 1 entry +;; "\02" ;; Active segment +;; "\80\00" ;; explicit table index, encoded with 2 bytes +;; "\41\00\0b\00\00" ;; (i32.const 0) with no elements +;; ) +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\09\01" ;; Element section with 1 entry +;; "\82\00" ;; Active segment, encoded with 2 bytes +;; "\00" ;; explicit table index +;; "\41\00\0b\00\00" ;; (i32.const 0) with no elements +;; ) +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\0a\01" ;; Element section with 1 entry +;; "\82\00" ;; Active segment, encoded with 2 bytes +;; "\80\00" ;; explicit table index, encoded with 2 bytes +;; "\41\00\0b\00\00" ;; (i32.const 0) with no elements +;; ) + +;; Type section with signed LEB128 encoded type +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01" ;; Type section id + "\05" ;; Type section length + "\01" ;; Types vector length + "\e0\7f" ;; Malformed functype, -0x20 in signed LEB128 encoding + "\00\00" + ) + "integer representation too long" +) diff --git a/tests/binary.wast b/tests/binary.wast new file mode 100644 index 0000000..8ae4734 --- /dev/null +++ b/tests/binary.wast @@ -0,0 +1,1403 @@ +(module binary "\00asm\01\00\00\00") +(module binary "\00asm" "\01\00\00\00") +(module $M1 binary "\00asm\01\00\00\00") +(module $M2 binary "\00asm" "\01\00\00\00") + +(assert_malformed (module binary "") "unexpected end") +(assert_malformed (module binary "\01") "unexpected end") +(assert_malformed (module binary "\00as") "unexpected end") +(assert_malformed (module binary "asm\00") "magic header not detected") +(assert_malformed (module binary "msa\00") "magic header not detected") +(assert_malformed (module binary "msa\00\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "msa\00\00\00\00\01") "magic header not detected") +(assert_malformed (module binary "asm\01\00\00\00\00") "magic header not detected") +(assert_malformed (module binary "wasm\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "\7fasm\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "\80asm\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "\82asm\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "\ffasm\01\00\00\00") "magic header not detected") + +;; 8-byte endian-reversed. +(assert_malformed (module binary "\00\00\00\01msa\00") "magic header not detected") + +;; Middle-endian byte orderings. +(assert_malformed (module binary "a\00ms\00\01\00\00") "magic header not detected") +(assert_malformed (module binary "sm\00a\00\00\01\00") "magic header not detected") + +;; Upper-cased. +(assert_malformed (module binary "\00ASM\01\00\00\00") "magic header not detected") + +;; EBCDIC-encoded magic. +(assert_malformed (module binary "\00\81\a2\94\01\00\00\00") "magic header not detected") + +;; Leading UTF-8 BOM. +(assert_malformed (module binary "\ef\bb\bf\00asm\01\00\00\00") "magic header not detected") + +;; Malformed binary version. +(assert_malformed (module binary "\00asm") "unexpected end") +(assert_malformed (module binary "\00asm\01") "unexpected end") +(assert_malformed (module binary "\00asm\01\00\00") "unexpected end") +(assert_malformed (module binary "\00asm\00\00\00\00") "unknown binary version") +(assert_malformed (module binary "\00asm\0d\00\00\00") "unknown binary version") +(assert_malformed (module binary "\00asm\0e\00\00\00") "unknown binary version") +(assert_malformed (module binary "\00asm\00\01\00\00") "unknown binary version") +(assert_malformed (module binary "\00asm\00\00\01\00") "unknown binary version") +(assert_malformed (module binary "\00asm\00\00\00\01") "unknown binary version") + +;; Invalid section id. +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\0e\01\00") "malformed section id") +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\7f\01\00") "malformed section id") +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\80\01\00\01\01\00") "malformed section id") +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\81\01\00\01\01\00") "malformed section id") +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\ff\01\00\01\01\00") "malformed section id") + +;; Function with missing end marker (between two functions) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\03\02\00\00" ;; Function section: 2 functions + "\0a\0c\02" ;; Code section: 2 functions + ;; function 0 + "\04\00" ;; Function size and local type count + "\41\01" ;; i32.const 1 + "\1a" ;; drop + ;; Missing end marker here + ;; function 1 + "\05\00" ;; Function size and local type count + "\41\01" ;; i32.const 1 + "\1a" ;; drop + "\0b" ;; end + ) + "END opcode expected" +) + +;; Function with missing end marker (at EOF) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\0a\06\01" ;; Code section: 1 function + ;; function 0 + "\04\00" ;; Function size and local type count + "\41\01" ;; i32.const 1 + "\1a" ;; drop + ;; Missing end marker here + ) + "unexpected end of section or function" +) + +;; Function with missing end marker (at end of code sections) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\0a\06\01" ;; Code section: 1 function + ;; function 0 + "\04\00" ;; Function size and local type count + "\41\01" ;; i32.const 1 + "\1a" ;; drop + ;; Missing end marker here + "\0b\03\01\01\00" ;; Data section + ) + ;; The spec interpreter consumes the `\0b` (data section start) as an + ;; END instruction (also happens to be `\0b`) and reports the code section as + ;; being larger than declared. + "section size mismatch" +) + +;; Init expression with missing end marker +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\06\05\01\7f\00\41\00" ;; Global section: 1 entry with missing end marker + ;; Missing end marker here + "\0a\04\01\02\00\0b" ;; Code section: 1 function + ) + "illegal opcode" +) + +;; memory.grow reserved byte equal to zero. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\09\01" ;; Code section + + ;; function 0 + "\07\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\01" ;; memory.grow reserved byte is not equal to zero! + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; memory.grow reserved byte should not be a "long" LEB128 zero. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0a\01" ;; Code section + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\80\00" ;; memory.grow reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; Same as above for 3, 4, and 5-byte zero encodings. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0b\01" ;; Code section + + ;; function 0 + "\09\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\80\80\00" ;; memory.grow reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0c\01" ;; Code section + + ;; function 0 + "\0a\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\80\80\80\00" ;; memory.grow reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0d\01" ;; Code section + + ;; function 0 + "\0b\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\80\80\80\80\00" ;; memory.grow reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; memory.size reserved byte equal to zero. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\07\01" ;; Code section + + ;; function 0 + "\05\00" + "\3f" ;; memory.size + "\01" ;; memory.size reserved byte is not equal to zero! + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; memory.size reserved byte should not be a "long" LEB128 zero. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\08\01" ;; Code section + + ;; function 0 + "\06\00" + "\3f" ;; memory.size + "\80\00" ;; memory.size reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; Same as above for 3, 4, and 5-byte zero encodings. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\09\01" ;; Code section + + ;; function 0 + "\07\00" + "\3f" ;; memory.size + "\80\80\00" ;; memory.size reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0a\01" ;; Code section + + ;; function 0 + "\08\00" + "\3f" ;; memory.size + "\80\80\80\00" ;; memory.size reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0b\01" ;; Code section + + ;; function 0 + "\09\00" + "\3f" ;; memory.size + "\80\80\80\80\00" ;; memory.size reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; Local number is unsigned 32 bit +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\0a\0c\01" ;; Code section + + ;; function 0 + "\0a\02" + "\80\80\80\80\10\7f" ;; 0x100000000 i32 + "\02\7e" ;; 0x00000002 i64 + "\0b" ;; end + ) + "integer too large" +) + +;; Local number is unsigned 32 bit +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\0a\0c\01" ;; Code section + + ;; function 0 + "\0a\02" + "\80\80\80\80\10\7f" ;; 0x100000000 i32 + "\02\7e" ;; 0x00000002 i64 + "\0b" ;; end + ) + "integer too large" +) + +;; No more than 2^32-1 locals. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\0a\0c\01" ;; Code section + + ;; function 0 + "\0a\02" + "\ff\ff\ff\ff\0f\7f" ;; 0xFFFFFFFF i32 + "\02\7e" ;; 0x00000002 i64 + "\0b" ;; end + ) + "too many locals" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\06\01\60\02\7f\7f\00" ;; Type section: (param i32 i32) + "\03\02\01\00" ;; Function section + "\0a\1c\01" ;; Code section + + ;; function 0 + "\1a\04" + "\80\80\80\80\04\7f" ;; 0x40000000 i32 + "\80\80\80\80\04\7e" ;; 0x40000000 i64 + "\80\80\80\80\04\7d" ;; 0x40000000 f32 + "\80\80\80\80\04\7c" ;; 0x40000000 f64 + "\0b" ;; end + ) + "too many locals" +) + +;; Local count can be 0. +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\0a\0a\01" ;; Code section + + ;; function 0 + "\08\03" + "\00\7f" ;; 0 i32 + "\00\7e" ;; 0 i64 + "\02\7d" ;; 2 f32 + "\0b" ;; end +) + +;; Function section has non-zero count, but code section is absent. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\03\02\00\00" ;; Function section with 2 functions + ) + "function and code section have inconsistent lengths" +) + +;; Code section has non-zero count, but function section is absent. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0a\04\01\02\00\0b" ;; Code section with 1 empty function + ) + "function and code section have inconsistent lengths" +) + +;; Function section count > code section count +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\03\02\00\00" ;; Function section with 2 functions + "\0a\04\01\02\00\0b" ;; Code section with 1 empty function + ) + "function and code section have inconsistent lengths" +) + +;; Function section count < code section count +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section with 1 function + "\0a\07\02\02\00\0b\02\00\0b" ;; Code section with 2 empty functions + ) + "function and code section have inconsistent lengths" +) + +;; Function section has zero count, and code section is absent. +(module binary + "\00asm" "\01\00\00\00" + "\03\01\00" ;; Function section with 0 functions +) + +;; Code section has zero count, and function section is absent. +(module binary + "\00asm" "\01\00\00\00" + "\0a\01\00" ;; Code section with 0 functions +) + +;; Fewer passive segments than data count +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0c\01\03" ;; Data count section with value 3 + "\0b\05\02" ;; Data section with two entries + "\01\00" ;; Passive data section + "\01\00" ;; Passive data section + ) + "data count and data section have inconsistent lengths" +) + +;; More passive segments than data count +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0c\01\01" ;; Data count section with value 1 + "\0b\05\02" ;; Data section with two entries + "\01\00" ;; Passive data section + "\01\00" ;; Passive data section + ) + "data count and data section have inconsistent lengths" +) + +;; Non-zero data count section without data section +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01\00\01" ;; Memory section with one entry + "\0c\01\01" ;; Data count section with value 1 + ) + "data count and data section have inconsistent lengths" +) + +;; WAST2JSON: error in binary module: @0x0000000a: invalid section code: 12 +;; ;; Zero data count section without data section +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\0c\01\00" ;; Data count section with value 0 +;; ) + +;; memory.init requires a data count section +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0e\01" ;; Code section + + ;; function 0 + "\0c\00" + "\41\00" ;; zero args + "\41\00" + "\41\00" + "\fc\08\00\00" ;; memory.init + "\0b" + + "\0b\03\01\01\00" ;; Data section + ) ;; end + "data count section required" +) + +;; data.drop requires a data count section +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\07\01" ;; Code section + + ;; function 0 + "\05\00" + "\fc\09\00" ;; data.drop + "\0b" + + "\0b\03\01\01\00" ;; Data section + ) ;; end + "data count section required" +) + +;; passive element segment containing illegal opcode +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + + "\01\04\01\60\00\00" ;; Type section + + "\03\02\01\00" ;; Function section + + "\04\04\01" ;; Table section with 1 entry + "\70\00\00" ;; no max, minimum 0, funcref + + "\05\03\01\00\00" ;; Memory section + + "\09\07\01" ;; Element section with one segment + "\05\70" ;; Passive, funcref + "\01" ;; 1 element + "\f3\00\0b" ;; bad opcode, index 0, end + + "\0a\04\01" ;; Code section + + ;; function 0 + "\02\00" + "\0b" ;; end + ) + "illegal opcode" +) + +;; passive element segment containing type other than funcref +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + + "\01\04\01\60\00\00" ;; Type section + + "\03\02\01\00" ;; Function section + + "\04\04\01" ;; Table section with 1 entry + "\70\00\00" ;; no max, minimum 0, funcref + + "\05\03\01\00\00" ;; Memory section + + "\09\07\01" ;; Element section with one segment + "\05\7f" ;; Passive, i32 + "\01" ;; 1 element + "\d2\00\0b" ;; ref.func, index 0, end + + "\0a\04\01" ;; Code section + + ;; function 0 + "\02\00" + "\0b" ;; end + ) + "malformed reference type" +) + +;; W2C2: No support for function references +;; ;; passive element segment containing opcode ref.func +;; (module binary +;; "\00asm" "\01\00\00\00" +;; +;; "\01\04\01\60\00\00" ;; Type section +;; +;; "\03\02\01\00" ;; Function section +;; +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; +;; "\05\03\01\00\00" ;; Memory section +;; +;; "\09\07\01" ;; Element section with one segment +;; "\05\70" ;; Passive, funcref +;; "\01" ;; 1 element +;; "\d2\00\0b" ;; ref.func, index 0, end +;; +;; "\0a\04\01" ;; Code section +;; +;; ;; function 0 +;; "\02\00" +;; "\0b" ;; end +;; ) +;; +;; ;; passive element segment containing opcode ref.null +;; (module binary +;; "\00asm" "\01\00\00\00" +;; +;; "\01\04\01\60\00\00" ;; Type section +;; +;; "\03\02\01\00" ;; Function section +;; +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; +;; "\05\03\01\00\00" ;; Memory section +;; +;; "\09\07\01" ;; Element section with one segment +;; "\05\70" ;; Passive, funcref +;; "\01" ;; 1 element +;; "\d0\70\0b" ;; ref.null, end +;; +;; "\0a\04\01" ;; Code section +;; +;; ;; function 0 +;; "\02\00" +;; "\0b" ;; end +;; ) + + +;; Type count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\01\01\00" ;; type count can be zero +) + +;; 2 type declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\07\02" ;; type section with inconsistent count (2 declared, 1 given) + "\60\00\00" ;; 1st type + ;; "\60\00\00" ;; 2nd type (missed) + ) + "length out of bounds" +) + +;; 1 type declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\07\01" ;; type section with inconsistent count (1 declared, 2 given) + "\60\00\00" ;; 1st type + "\60\00\00" ;; 2nd type (redundant) + ) + "section size mismatch" +) + +;; Import count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; type 0 + "\02\01\00" ;; import count can be zero +) + +;; Malformed import kind +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\04\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\04" ;; malformed import kind + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\05\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\04" ;; malformed import kind + "\00" ;; dummy byte + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\04\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\05" ;; malformed import kind + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\05\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\05" ;; malformed import kind + "\00" ;; dummy byte + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\04\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\80" ;; malformed import kind + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\05\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\80" ;; malformed import kind + "\00" ;; dummy byte + ) + "malformed import kind" +) + +;; 2 import declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; type 0 + "\02\16\02" ;; import section with inconsistent count (2 declared, 1 given) + ;; 1st import + "\08" ;; string length + "\73\70\65\63\74\65\73\74" ;; spectest + "\09" ;; string length + "\70\72\69\6e\74\5f\69\33\32" ;; print_i32 + "\00\00" ;; import kind, import signature index + ;; 2nd import + ;; (missed) + ) + "unexpected end of section or function" +) + +;; 1 import declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\09\02" ;; type section + "\60\01\7f\00" ;; type 0 + "\60\01\7d\00" ;; type 1 + "\02\2b\01" ;; import section with inconsistent count (1 declared, 2 given) + ;; 1st import + "\08" ;; string length + "\73\70\65\63\74\65\73\74" ;; spectest + "\09" ;; string length + "\70\72\69\6e\74\5f\69\33\32" ;; print_i32 + "\00\00" ;; import kind, import signature index + ;; 2nd import + ;; (redundant) + "\08" ;; string length + "\73\70\65\63\74\65\73\74" ;; spectest + "\09" ;; string length + "\70\72\69\6e\74\5f\66\33\32" ;; print_f32 + "\00\01" ;; import kind, import signature index + ) + "section size mismatch" +) + +;; Table count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\04\01\00" ;; table count can be zero +) + +;; 1 table declared, 0 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\01\01" ;; table section with inconsistent count (1 declared, 0 given) + ;; "\70\01\00\00" ;; table entity + ) + "unexpected end of section or function" +) + +;; Malformed table limits flag +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\03\01" ;; table section with one entry + "\70" ;; anyfunc + "\02" ;; malformed table limits flag + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\04\01" ;; table section with one entry + "\70" ;; anyfunc + "\02" ;; malformed table limits flag + "\00" ;; dummy byte + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\06\01" ;; table section with one entry + "\70" ;; anyfunc + "\81\00" ;; malformed table limits flag as LEB128 + "\00\00" ;; dummy bytes + ) + "integer representation too long" +) + +;; Memory count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\05\01\00" ;; memory count can be zero +) + +;; 1 memory declared, 0 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\01\01" ;; memory section with inconsistent count (1 declared, 0 given) + ;; "\00\00" ;; memory 0 (missed) + ) + "unexpected end of section or function" +) + +;; Malformed memory limits flag +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\02\01" ;; memory section with one entry + "\02" ;; malformed memory limits flag + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section with one entry + "\02" ;; malformed memory limits flag + "\00" ;; dummy byte + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\05\01" ;; memory section with one entry + "\81\00" ;; malformed memory limits flag as LEB128 + "\00\00" ;; dummy bytes + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\05\01" ;; memory section with one entry + "\81\01" ;; malformed memory limits flag as LEB128 + "\00\00" ;; dummy bytes + ) + "integer representation too long" +) + +;; Global count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\06\01\00" ;; global count can be zero +) + +;; 2 global declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\06\02" ;; global section with inconsistent count (2 declared, 1 given) + "\7f\00\41\00\0b" ;; global 0 + ;; "\7f\00\41\00\0b" ;; global 1 (missed) + ) + "unexpected end of section or function" +) + +;; 1 global declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0b\01" ;; global section with inconsistent count (1 declared, 2 given) + "\7f\00\41\00\0b" ;; global 0 + "\7f\00\41\00\0b" ;; global 1 (redundant) + ) + "section size mismatch" +) + +;; Export count can be 0 +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\03\02\00\00" ;; func section + "\07\01\00" ;; export count can be zero + "\0a\07\02" ;; code section + "\02\00\0b" ;; function body 0 + "\02\00\0b" ;; function body 1 +) + +;; 2 export declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\03\02\00\00" ;; func section + "\07\06\02" ;; export section with inconsistent count (2 declared, 1 given) + "\02" ;; export 0 + "\66\31" ;; export name + "\00\00" ;; export kind, export func index + ;; "\02" ;; export 1 (missed) + ;; "\66\32" ;; export name + ;; "\00\01" ;; export kind, export func index + "\0a\07\02" ;; code section + "\02\00\0b" ;; function body 0 + "\02\00\0b" ;; function body 1 + ) + "length out of bounds" +) + +;; 1 export declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\03\02\00\00" ;; func section + "\07\0b\01" ;; export section with inconsistent count (1 declared, 2 given) + "\02" ;; export 0 + "\66\31" ;; export name + "\00\00" ;; export kind, export func index + "\02" ;; export 1 (redundant) + "\66\32" ;; export name + "\00\01" ;; export kind, export func index + "\0a\07\02" ;; code section + "\02\00\0b" ;; function body 0 + "\02\00\0b" ;; function body 1 + ) + "section size mismatch" +) + +;; elem segment count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\04\04\01" ;; table section + "\70\00\01" ;; table 0 + "\09\01\00" ;; elem segment count can be zero + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body +) + +;; 2 elem segment declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\04\04\01" ;; table section + "\70\00\01" ;; table 0 + "\09\07\02" ;; elem with inconsistent segment count (2 declared, 1 given) + "\00\41\00\0b\01\00" ;; elem 0 + ;; "\00\41\00\0b\01\00" ;; elem 1 (missed) + ) + "unexpected end" +) + +;; 2 elem segment declared, 1.5 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\04\04\01" ;; table section + "\70\00\01" ;; table 0 + "\09\0a\02" ;; elem with inconsistent segment count (2 declared, 1 given) + "\00\41\00\0b\01\00" ;; elem 0 + "\00\41\00" ;; elem 1 (partial) + ;; "\0b\01\00" ;; elem 1 (missing part) + ) + "unexpected end" +) + +;; 1 elem segment declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\04\04\01" ;; table section + "\70\00\01" ;; table 0 + "\09\0d\01" ;; elem with inconsistent segment count (1 declared, 2 given) + "\00\41\00\0b\01\00" ;; elem 0 + "\00\41\00\0b\01\00" ;; elem 1 (redundant) + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "section size mismatch" +) + +;; data segment count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\01\00" ;; data segment count can be zero +) + +;; 2 data segment declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\07\02" ;; data with inconsistent segment count (2 declared, 1 given) + "\00\41\00\0b\01\61" ;; data 0 + ;; "\00\41\01\0b\01\62" ;; data 1 (missed) + ) + "unexpected end of section or function" +) + +;; 1 data segment declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\0d\01" ;; data with inconsistent segment count (1 declared, 2 given) + "\00\41\00\0b\01\61" ;; data 0 + "\00\41\01\0b\01\62" ;; data 1 (redundant) + ) + "section size mismatch" +) + +;; data segment has 7 bytes declared, but 6 bytes given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\0c\01" ;; data section + "\00\41\03\0b" ;; data segment 0 + "\07" ;; data segment size with inconsistent lengths (7 declared, 6 given) + "\61\62\63\64\65\66" ;; 6 bytes given + ) + "unexpected end of section or function" +) + +;; data segment has 5 bytes declared, but 6 bytes given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\0c\01" ;; data section + "\00\41\00\0b" ;; data segment 0 + "\05" ;; data segment size with inconsistent lengths (5 declared, 6 given) + "\61\62\63\64\65\66" ;; 6 bytes given + ) + "section size mismatch" +) + +;; br_table target count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\0a\11\01" ;; code section + "\0f\00" ;; func 0 + "\02\40" ;; block 0 + "\41\01" ;; condition of if 0 + "\04\40" ;; if 0 + "\41\01" ;; index of br_table element + "\0e\00" ;; br_table target count can be zero + "\02" ;; break depth for default + "\0b\0b\0b" ;; end +) + +;; 1 br_table target declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\25\0c" ;; type section + "\60\00\00" ;; type 0 + "\60\00\00" ;; type 1 + "\60\00\00" ;; type 2 + "\60\00\00" ;; type 3 + "\60\00\00" ;; type 4 + "\60\00\00" ;; type 5 + "\60\00\00" ;; type 6 + "\60\00\00" ;; type 7 + "\60\00\00" ;; type 8 + "\60\00\00" ;; type 9 + "\60\00\00" ;; type 10 + "\60\00\00" ;; type 11 + "\03\02\01\00" ;; func section + "\0a\13\01" ;; code section + "\11\00" ;; func 0 + "\02\40" ;; block 0 + "\41\01" ;; condition of if 0 + "\04\40" ;; if 0 + "\41\01" ;; index of br_table element + "\0e\01" ;; br_table with inconsistent target count (1 declared, 2 given) + "\00" ;; break depth 0 + "\01" ;; break depth 1 + "\02" ;; break depth for default, interpreted as a block + "\0b" ;; end, interpreted as type 11 for the block + "\0b\0b" ;; end + ) + "unexpected end" +) + +;; Start section +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\08\01\00" ;; Start section: function 0 + + "\0a\04\01" ;; Code section + ;; function 0 + "\02\00" + "\0b" ;; end +) + +;; Multiple start sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\08\01\00" ;; Start section: function 0 + "\08\01\00" ;; Start section: function 0 + + "\0a\04\01" ;; Code section + ;; function 0 + "\02\00" + "\0b" ;; end + ) + "unexpected content after last section" +) + +;; Multiple function sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section with 1 function + "\03\02\01\00" ;; Function section with 1 function + "\0a\07\02\02\00\0b\02\00\0b" ;; Code section with 2 empty functions + ) + "unexpected content after last section" +) + +;; Multiple code sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\03\02\00\00" ;; Function section with 2 functions + "\0a\04\01\02\00\0b" ;; Code section with 1 empty function + "\0a\04\01\02\00\0b" ;; Code section with 1 empty function + ) + "unexpected content after last section" +) + +;; Multiple data count sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0c\01\01" ;; Data count section with value "1" + "\0c\01\01" ;; Data count section with value "1" + ) + "unexpected content after last section" +) + +;; Multiple data sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0b\01\00" ;; Data section with zero entries + "\0b\01\00" ;; Data section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple global sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\01\00" ;; Global section with zero entries + "\06\01\00" ;; Global section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple export sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\07\01\00" ;; Export section with zero entries + "\07\01\00" ;; Export section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple table sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\01\00" ;; Table section with zero entries + "\04\01\00" ;; Table section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple element sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\09\01\00" ;; Element section with zero entries + "\09\01\00" ;; Element section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple import sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\01\00" ;; Import section with zero entries + "\02\01\00" ;; Import section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple type sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\01\00" ;; Type section with zero entries + "\01\01\00" ;; Type section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple memory sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\01\00" ;; Memory section with zero entries + "\05\01\00" ;; Memory section with zero entries + ) + "unexpected content after last section" +) + +;; Type section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\01\00" ;; Import section with zero entries + "\01\01\00" ;; Type section with zero entries + ) + "unexpected content after last section" +) + +;; Import section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\03\01\00" ;; Function section with zero entries + "\02\01\00" ;; Import section with zero entries + ) + "unexpected content after last section" +) + +;; Function section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\01\00" ;; Table section with zero entries + "\03\01\00" ;; Function section with zero entries + ) + "unexpected content after last section" +) + +;; Table section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\01\00" ;; Memory section with zero entries + "\04\01\00" ;; Table section with zero entries + ) + "unexpected content after last section" +) + +;; Memory section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\01\00" ;; Global section with zero entries + "\05\01\00" ;; Memory section with zero entries + ) + "unexpected content after last section" +) + +;; Global section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\07\01\00" ;; Export section with zero entries + "\06\01\00" ;; Global section with zero entries + ) + "unexpected content after last section" +) + +;; Export section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\03\02\01\00" ;; Function section + "\08\01\00" ;; Start section: function 0 + "\07\01\00" ;; Export section with zero entries + ) + "unexpected content after last section" +) + +;; Start section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\03\02\01\00" ;; Function section + "\09\01\00" ;; Element section with zero entries + "\08\01\00" ;; Start section: function 0 + ) + "unexpected content after last section" +) + +;; Element section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0c\01\01" ;; Data count section with value "1" + "\09\01\00" ;; Element section with zero entries + ) + "unexpected content after last section" +) + +;; Data count section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0a\01\00" ;; Code section with zero entries + "\0c\01\01" ;; Data count section with value "1" + ) + "unexpected content after last section" +) + +;; Code section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0b\01\00" ;; Data section with zero entries + "\0a\01\00" ;; Code section with zero entries + ) + "unexpected content after last section" +) + diff --git a/tests/gen.py b/tests/gen.py index b71b80f..b9864ed 100644 --- a/tests/gen.py +++ b/tests/gen.py @@ -199,7 +199,8 @@ def gen(paths): 'memory_copy.wast', 'memory_fill.wast', 'memory_init.wast', - 'bulk.wast' + 'bulk.wast', + 'binary-leb128.wast' } for wast_path in paths: diff --git a/tests/gen/assert_binary-leb128.0.c b/tests/gen/assert_binary-leb128.0.c new file mode 100644 index 0000000..d6f0490 --- /dev/null +++ b/tests/gen/assert_binary-leb128.0.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.0.h" + +void test() { + binaryleb1280Instance instance; + binaryleb1280Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.0.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.1.c b/tests/gen/assert_binary-leb128.1.c new file mode 100644 index 0000000..5f7ed95 --- /dev/null +++ b/tests/gen/assert_binary-leb128.1.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.1.h" + +void test() { + binaryleb1281Instance instance; + binaryleb1281Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.1.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.10.c b/tests/gen/assert_binary-leb128.10.c new file mode 100644 index 0000000..4ceb4c9 --- /dev/null +++ b/tests/gen/assert_binary-leb128.10.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.10.h" + +void test() { + binaryleb12810Instance instance; + binaryleb12810Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.10.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.11.c b/tests/gen/assert_binary-leb128.11.c new file mode 100644 index 0000000..45a4421 --- /dev/null +++ b/tests/gen/assert_binary-leb128.11.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.11.h" + +void test() { + binaryleb12811Instance instance; + binaryleb12811Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.11.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.12.c b/tests/gen/assert_binary-leb128.12.c new file mode 100644 index 0000000..906f730 --- /dev/null +++ b/tests/gen/assert_binary-leb128.12.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.12.h" + +void test() { + binaryleb12812Instance instance; + binaryleb12812Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.12.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.13.c b/tests/gen/assert_binary-leb128.13.c new file mode 100644 index 0000000..17ffb28 --- /dev/null +++ b/tests/gen/assert_binary-leb128.13.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.13.h" + +void test() { + binaryleb12813Instance instance; + binaryleb12813Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.13.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.14.c b/tests/gen/assert_binary-leb128.14.c new file mode 100644 index 0000000..7e804e8 --- /dev/null +++ b/tests/gen/assert_binary-leb128.14.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.14.h" + +void test() { + binaryleb12814Instance instance; + binaryleb12814Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.14.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.15.c b/tests/gen/assert_binary-leb128.15.c new file mode 100644 index 0000000..408ef43 --- /dev/null +++ b/tests/gen/assert_binary-leb128.15.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.15.h" + +void test() { + binaryleb12815Instance instance; + binaryleb12815Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.15.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.16.c b/tests/gen/assert_binary-leb128.16.c new file mode 100644 index 0000000..16b26a9 --- /dev/null +++ b/tests/gen/assert_binary-leb128.16.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.16.h" + +void test() { + binaryleb12816Instance instance; + binaryleb12816Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.16.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.17.c b/tests/gen/assert_binary-leb128.17.c new file mode 100644 index 0000000..4e616fb --- /dev/null +++ b/tests/gen/assert_binary-leb128.17.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.17.h" + +void test() { + binaryleb12817Instance instance; + binaryleb12817Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.17.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.18.c b/tests/gen/assert_binary-leb128.18.c new file mode 100644 index 0000000..35aa4da --- /dev/null +++ b/tests/gen/assert_binary-leb128.18.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.18.h" + +void test() { + binaryleb12818Instance instance; + binaryleb12818Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.18.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.19.c b/tests/gen/assert_binary-leb128.19.c new file mode 100644 index 0000000..308ae21 --- /dev/null +++ b/tests/gen/assert_binary-leb128.19.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.19.h" + +void test() { + binaryleb12819Instance instance; + binaryleb12819Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.19.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.2.c b/tests/gen/assert_binary-leb128.2.c new file mode 100644 index 0000000..dfea0fb --- /dev/null +++ b/tests/gen/assert_binary-leb128.2.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.2.h" + +void test() { + binaryleb1282Instance instance; + binaryleb1282Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.2.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.20.c b/tests/gen/assert_binary-leb128.20.c new file mode 100644 index 0000000..04a4ede --- /dev/null +++ b/tests/gen/assert_binary-leb128.20.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.20.h" + +void test() { + binaryleb12820Instance instance; + binaryleb12820Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.20.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.21.c b/tests/gen/assert_binary-leb128.21.c new file mode 100644 index 0000000..c927d01 --- /dev/null +++ b/tests/gen/assert_binary-leb128.21.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.21.h" + +void test() { + binaryleb12821Instance instance; + binaryleb12821Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.21.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.22.c b/tests/gen/assert_binary-leb128.22.c new file mode 100644 index 0000000..abaabaf --- /dev/null +++ b/tests/gen/assert_binary-leb128.22.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.22.h" + +void test() { + binaryleb12822Instance instance; + binaryleb12822Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.22.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.23.c b/tests/gen/assert_binary-leb128.23.c new file mode 100644 index 0000000..0bb5685 --- /dev/null +++ b/tests/gen/assert_binary-leb128.23.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.23.h" + +void test() { + binaryleb12823Instance instance; + binaryleb12823Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.23.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.3.c b/tests/gen/assert_binary-leb128.3.c new file mode 100644 index 0000000..f27f731 --- /dev/null +++ b/tests/gen/assert_binary-leb128.3.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.3.h" + +void test() { + binaryleb1283Instance instance; + binaryleb1283Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.3.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.4.c b/tests/gen/assert_binary-leb128.4.c new file mode 100644 index 0000000..a4c2954 --- /dev/null +++ b/tests/gen/assert_binary-leb128.4.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.4.h" + +void test() { + binaryleb1284Instance instance; + binaryleb1284Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.4.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.5.c b/tests/gen/assert_binary-leb128.5.c new file mode 100644 index 0000000..c135139 --- /dev/null +++ b/tests/gen/assert_binary-leb128.5.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.5.h" + +void test() { + binaryleb1285Instance instance; + binaryleb1285Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.5.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.6.c b/tests/gen/assert_binary-leb128.6.c new file mode 100644 index 0000000..7e88477 --- /dev/null +++ b/tests/gen/assert_binary-leb128.6.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.6.h" + +void test() { + binaryleb1286Instance instance; + binaryleb1286Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.6.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.7.c b/tests/gen/assert_binary-leb128.7.c new file mode 100644 index 0000000..68f30ec --- /dev/null +++ b/tests/gen/assert_binary-leb128.7.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.7.h" + +void test() { + binaryleb1287Instance instance; + binaryleb1287Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.7.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.8.c b/tests/gen/assert_binary-leb128.8.c new file mode 100644 index 0000000..c290d43 --- /dev/null +++ b/tests/gen/assert_binary-leb128.8.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.8.h" + +void test() { + binaryleb1288Instance instance; + binaryleb1288Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.8.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.80.c b/tests/gen/assert_binary-leb128.80.c new file mode 100644 index 0000000..06c2674 --- /dev/null +++ b/tests/gen/assert_binary-leb128.80.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.80.h" + +void test() { + binaryleb12880Instance instance; + binaryleb12880Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.80.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.82.c b/tests/gen/assert_binary-leb128.82.c new file mode 100644 index 0000000..5532baf --- /dev/null +++ b/tests/gen/assert_binary-leb128.82.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.82.h" + +void test() { + binaryleb12882Instance instance; + binaryleb12882Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.82.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.83.c b/tests/gen/assert_binary-leb128.83.c new file mode 100644 index 0000000..104208e --- /dev/null +++ b/tests/gen/assert_binary-leb128.83.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.83.h" + +void test() { + binaryleb12883Instance instance; + binaryleb12883Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.83.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.84.c b/tests/gen/assert_binary-leb128.84.c new file mode 100644 index 0000000..a8ef893 --- /dev/null +++ b/tests/gen/assert_binary-leb128.84.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.84.h" + +void test() { + binaryleb12884Instance instance; + binaryleb12884Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.84.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.9.c b/tests/gen/assert_binary-leb128.9.c new file mode 100644 index 0000000..14a082c --- /dev/null +++ b/tests/gen/assert_binary-leb128.9.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.9.h" + +void test() { + binaryleb1289Instance instance; + binaryleb1289Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.9.wasm"); +} diff --git a/tests/gen/assert_binary.0.c b/tests/gen/assert_binary.0.c new file mode 100644 index 0000000..a170c80 --- /dev/null +++ b/tests/gen/assert_binary.0.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.0.h" + +void test() { + binary0Instance instance; + binary0Instantiate(&instance, resolveTestImports); + printStart("binary.0.wasm"); +} diff --git a/tests/gen/assert_binary.1.c b/tests/gen/assert_binary.1.c new file mode 100644 index 0000000..6454f68 --- /dev/null +++ b/tests/gen/assert_binary.1.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.1.h" + +void test() { + binary1Instance instance; + binary1Instantiate(&instance, resolveTestImports); + printStart("binary.1.wasm"); +} diff --git a/tests/gen/assert_binary.102.c b/tests/gen/assert_binary.102.c new file mode 100644 index 0000000..c48a6dc --- /dev/null +++ b/tests/gen/assert_binary.102.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.102.h" + +void test() { + binary102Instance instance; + binary102Instantiate(&instance, resolveTestImports); + printStart("binary.102.wasm"); +} diff --git a/tests/gen/assert_binary.107.c b/tests/gen/assert_binary.107.c new file mode 100644 index 0000000..b8d5614 --- /dev/null +++ b/tests/gen/assert_binary.107.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.107.h" + +void test() { + binary107Instance instance; + binary107Instantiate(&instance, resolveTestImports); + printStart("binary.107.wasm"); +} diff --git a/tests/gen/assert_binary.109.c b/tests/gen/assert_binary.109.c new file mode 100644 index 0000000..bd99604 --- /dev/null +++ b/tests/gen/assert_binary.109.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.109.h" + +void test() { + binary109Instance instance; + binary109Instantiate(&instance, resolveTestImports); + printStart("binary.109.wasm"); +} diff --git a/tests/gen/assert_binary.2.c b/tests/gen/assert_binary.2.c new file mode 100644 index 0000000..5d7b9ff --- /dev/null +++ b/tests/gen/assert_binary.2.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.2.h" + +void test() { + binary2Instance instance; + binary2Instantiate(&instance, resolveTestImports); + printStart("binary.2.wasm"); +} diff --git a/tests/gen/assert_binary.3.c b/tests/gen/assert_binary.3.c new file mode 100644 index 0000000..6e52a12 --- /dev/null +++ b/tests/gen/assert_binary.3.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.3.h" + +void test() { + binary3Instance instance; + binary3Instantiate(&instance, resolveTestImports); + printStart("binary.3.wasm"); +} diff --git a/tests/gen/assert_binary.55.c b/tests/gen/assert_binary.55.c new file mode 100644 index 0000000..fb3edb9 --- /dev/null +++ b/tests/gen/assert_binary.55.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.55.h" + +void test() { + binary55Instance instance; + binary55Instantiate(&instance, resolveTestImports); + printStart("binary.55.wasm"); +} diff --git a/tests/gen/assert_binary.60.c b/tests/gen/assert_binary.60.c new file mode 100644 index 0000000..e35076a --- /dev/null +++ b/tests/gen/assert_binary.60.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.60.h" + +void test() { + binary60Instance instance; + binary60Instantiate(&instance, resolveTestImports); + printStart("binary.60.wasm"); +} diff --git a/tests/gen/assert_binary.61.c b/tests/gen/assert_binary.61.c new file mode 100644 index 0000000..97d2b0f --- /dev/null +++ b/tests/gen/assert_binary.61.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.61.h" + +void test() { + binary61Instance instance; + binary61Instantiate(&instance, resolveTestImports); + printStart("binary.61.wasm"); +} diff --git a/tests/gen/assert_binary.69.c b/tests/gen/assert_binary.69.c new file mode 100644 index 0000000..5b3028d --- /dev/null +++ b/tests/gen/assert_binary.69.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.69.h" + +void test() { + binary69Instance instance; + binary69Instantiate(&instance, resolveTestImports); + printStart("binary.69.wasm"); +} diff --git a/tests/gen/assert_binary.72.c b/tests/gen/assert_binary.72.c new file mode 100644 index 0000000..5a1fbcc --- /dev/null +++ b/tests/gen/assert_binary.72.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.72.h" + +void test() { + binary72Instance instance; + binary72Instantiate(&instance, resolveTestImports); + printStart("binary.72.wasm"); +} diff --git a/tests/gen/assert_binary.81.c b/tests/gen/assert_binary.81.c new file mode 100644 index 0000000..c85e854 --- /dev/null +++ b/tests/gen/assert_binary.81.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.81.h" + +void test() { + binary81Instance instance; + binary81Instantiate(&instance, resolveTestImports); + printStart("binary.81.wasm"); +} diff --git a/tests/gen/assert_binary.86.c b/tests/gen/assert_binary.86.c new file mode 100644 index 0000000..95e0ef1 --- /dev/null +++ b/tests/gen/assert_binary.86.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.86.h" + +void test() { + binary86Instance instance; + binary86Instantiate(&instance, resolveTestImports); + printStart("binary.86.wasm"); +} diff --git a/tests/gen/assert_binary.92.c b/tests/gen/assert_binary.92.c new file mode 100644 index 0000000..44c3bf1 --- /dev/null +++ b/tests/gen/assert_binary.92.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.92.h" + +void test() { + binary92Instance instance; + binary92Instantiate(&instance, resolveTestImports); + printStart("binary.92.wasm"); +} diff --git a/tests/gen/assert_binary.95.c b/tests/gen/assert_binary.95.c new file mode 100644 index 0000000..d0d3a01 --- /dev/null +++ b/tests/gen/assert_binary.95.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.95.h" + +void test() { + binary95Instance instance; + binary95Instantiate(&instance, resolveTestImports); + printStart("binary.95.wasm"); +} diff --git a/tests/gen/assert_binary.98.c b/tests/gen/assert_binary.98.c new file mode 100644 index 0000000..8f9dc55 --- /dev/null +++ b/tests/gen/assert_binary.98.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.98.h" + +void test() { + binary98Instance instance; + binary98Instantiate(&instance, resolveTestImports); + printStart("binary.98.wasm"); +} diff --git a/tests/gen/assert_global.0.c b/tests/gen/assert_global.0.c index d729d16..48622ea 100644 --- a/tests/gen/assert_global.0.c +++ b/tests/gen/assert_global.0.c @@ -82,6 +82,28 @@ void test() { 9.0, "get-8()" ); + global0_setX2D7(&instance, 8.0); + global0_setX2D8(&instance, 9.0); + assertEqualU32( + global0_getX2Dx(&instance), + 6u, + "get-x()" + ); + assertEqualU64( + global0_getX2Dy(&instance), + 7ull, + "get-y()" + ); + assertEqualF32( + global0_getX2D7(&instance), + 8.0, + "get-7()" + ); + assertEqualF64( + global0_getX2D8(&instance), + 9.0, + "get-8()" + ); assertEqualU32( global0_asX2DselectX2Dfirst(&instance), 6u, diff --git a/tests/gen/assert_global.20.c b/tests/gen/assert_global.20.c deleted file mode 100644 index f083ed2..0000000 --- a/tests/gen/assert_global.20.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_global.20.h" - -void test() { - global20Instance instance; - global20Instantiate(&instance, resolveTestImports); - printStart("global.20.wasm"); -} diff --git a/tests/gen/assert_global.22.c b/tests/gen/assert_global.22.c new file mode 100644 index 0000000..63b74b6 --- /dev/null +++ b/tests/gen/assert_global.22.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_global.22.h" + +void test() { + global22Instance instance; + global22Instantiate(&instance, resolveTestImports); + printStart("global.22.wasm"); +} diff --git a/tests/gen/assert_global.23.c b/tests/gen/assert_global.23.c deleted file mode 100644 index bbf27a0..0000000 --- a/tests/gen/assert_global.23.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_global.23.h" - -void test() { - global23Instance instance; - global23Instantiate(&instance, resolveTestImports); - printStart("global.23.wasm"); -} diff --git a/tests/gen/assert_global.25.c b/tests/gen/assert_global.25.c new file mode 100644 index 0000000..666321a --- /dev/null +++ b/tests/gen/assert_global.25.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_global.25.h" + +void test() { + global25Instance instance; + global25Instantiate(&instance, resolveTestImports); + printStart("global.25.wasm"); +} diff --git a/tests/gen/assert_loop.0.c b/tests/gen/assert_loop.0.c index 204423e..baef73c 100644 --- a/tests/gen/assert_loop.0.c +++ b/tests/gen/assert_loop.0.c @@ -14,11 +14,6 @@ void test() { 7u, "singular()" ); - assertEqualU32( - loop0_multi(&instance), - 8u, - "multi()" - ); assertEqualU32( loop0_nested(&instance), 9u, @@ -158,16 +153,6 @@ void test() { 19u, "break-bare()" ); - assertEqualU32( - loop0_breakX2Dvalue(&instance), - 18u, - "break-value()" - ); - assertEqualU32( - loop0_breakX2Drepeated(&instance), - 18u, - "break-repeated()" - ); assertEqualU32( loop0_breakX2Dinner(&instance), 31u, diff --git a/tests/gen/assert_memory.34.c b/tests/gen/assert_memory.34.c new file mode 100644 index 0000000..68971e5 --- /dev/null +++ b/tests/gen/assert_memory.34.c @@ -0,0 +1,51 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory.34.h" + +void test() { + memory34Instance instance; + memory34Instantiate(&instance, resolveTestImports); + printStart("memory.34.wasm"); + assertEqualU32( + memory34_load(&instance, 0u), + 0u, + "load(0u)" + ); + assertEqualU32( + memory34_load(&instance, 10000u), + 0u, + "load(10000u)" + ); + assertEqualU32( + memory34_load(&instance, 20000u), + 0u, + "load(20000u)" + ); + assertEqualU32( + memory34_load(&instance, 30000u), + 0u, + "load(30000u)" + ); + assertEqualU32( + memory34_load(&instance, 40000u), + 0u, + "load(40000u)" + ); + assertEqualU32( + memory34_load(&instance, 50000u), + 0u, + "load(50000u)" + ); + assertEqualU32( + memory34_load(&instance, 60000u), + 0u, + "load(60000u)" + ); + assertEqualU32( + memory34_load(&instance, 65535u), + 0u, + "load(65535u)" + ); +} diff --git a/tests/gen/assert_memory_trap.1.c b/tests/gen/assert_memory_trap.1.c index ea95c6d..24401ee 100644 --- a/tests/gen/assert_memory_trap.1.c +++ b/tests/gen/assert_memory_trap.1.c @@ -18,4 +18,25 @@ void test() { 7523094288207667809ull, "i64.load(0u)" ); + memorytrap1_i64X2Estore(&instance, 65528u, 0ull); + assertEqualU32( + memorytrap1_i32X2Eload(&instance, 65532u), + 0u, + "i32.load(65532u)" + ); + assertEqualU64( + memorytrap1_i64X2Eload(&instance, 65528u), + 0ull, + "i64.load(65528u)" + ); + assertEqualF32( + memorytrap1_f32X2Eload(&instance, 65532u), + 0.0, + "f32.load(65532u)" + ); + assertEqualF64( + memorytrap1_f64X2Eload(&instance, 65528u), + 0.0, + "f64.load(65528u)" + ); } diff --git a/tests/gen/assert_select.0.c b/tests/gen/assert_select.0.c index 1917bc6..c4f7111 100644 --- a/tests/gen/assert_select.0.c +++ b/tests/gen/assert_select.0.c @@ -9,44 +9,44 @@ void test() { select0Instantiate(&instance, resolveTestImports); printStart("select.0.wasm"); assertEqualU32( - select0_select_i32(&instance, 1u, 2u, 1u), + select0_selectX2Di32(&instance, 1u, 2u, 1u), 1u, - "select_i32(1u, 2u, 1u)" + "select-i32(1u, 2u, 1u)" ); assertEqualU64( - select0_select_i64(&instance, 2ull, 1ull, 1u), + select0_selectX2Di64(&instance, 2ull, 1ull, 1u), 2ull, - "select_i64(2ull, 1ull, 1u)" + "select-i64(2ull, 1ull, 1u)" ); assertEqualF32( - select0_select_f32(&instance, 1.0, 2.0, 1u), + select0_selectX2Df32(&instance, 1.0, 2.0, 1u), 1.0, - "select_f32(1.0, 2.0, 1u)" + "select-f32(1.0, 2.0, 1u)" ); assertEqualF64( - select0_select_f64(&instance, 1.0, 2.0, 1u), + select0_selectX2Df64(&instance, 1.0, 2.0, 1u), 1.0, - "select_f64(1.0, 2.0, 1u)" + "select-f64(1.0, 2.0, 1u)" ); assertEqualU32( - select0_select_i32(&instance, 1u, 2u, 0u), + select0_selectX2Di32(&instance, 1u, 2u, 0u), 2u, - "select_i32(1u, 2u, 0u)" + "select-i32(1u, 2u, 0u)" ); assertEqualU32( - select0_select_i32(&instance, 2u, 1u, 0u), + select0_selectX2Di32(&instance, 2u, 1u, 0u), 1u, - "select_i32(2u, 1u, 0u)" + "select-i32(2u, 1u, 0u)" ); assertEqualU64( - select0_select_i64(&instance, 2ull, 1ull, 4294967295u), + select0_selectX2Di64(&instance, 2ull, 1ull, 4294967295u), 2ull, - "select_i64(2ull, 1ull, 4294967295u)" + "select-i64(2ull, 1ull, 4294967295u)" ); assertEqualU64( - select0_select_i64(&instance, 2ull, 1ull, 4042322160u), + select0_selectX2Di64(&instance, 2ull, 1ull, 4042322160u), 2ull, - "select_i64(2ull, 1ull, 4042322160u)" + "select-i64(2ull, 1ull, 4042322160u)" ); assertEqualU32( select0_asX2DselectX2Dfirst(&instance, 0u), @@ -170,26 +170,6 @@ void test() { 2u, "as-br_table-last(1u)" ); - assertEqualU32( - select0_asX2Dcall_indirectX2Dfirst(&instance, 0u), - 3u, - "as-call_indirect-first(0u)" - ); - assertEqualU32( - select0_asX2Dcall_indirectX2Dfirst(&instance, 1u), - 2u, - "as-call_indirect-first(1u)" - ); - assertEqualU32( - select0_asX2Dcall_indirectX2Dmid(&instance, 0u), - 1u, - "as-call_indirect-mid(0u)" - ); - assertEqualU32( - select0_asX2Dcall_indirectX2Dmid(&instance, 1u), - 1u, - "as-call_indirect-mid(1u)" - ); select0_asX2DstoreX2Dfirst(&instance, 0u); select0_asX2DstoreX2Dfirst(&instance, 1u); select0_asX2DstoreX2Dlast(&instance, 0u); diff --git a/tests/gen/assert_select.26.c b/tests/gen/assert_select.26.c new file mode 100644 index 0000000..c593a18 --- /dev/null +++ b/tests/gen/assert_select.26.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_select.26.h" + +void test() { + select26Instance instance; + select26Instantiate(&instance, resolveTestImports); + printStart("select.26.wasm"); +} diff --git a/tests/gen/assert_unreachable.0.c b/tests/gen/assert_unreachable.0.c new file mode 100644 index 0000000..9c13b62 --- /dev/null +++ b/tests/gen/assert_unreachable.0.c @@ -0,0 +1,36 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_unreachable.0.h" + +void test() { + unreachable0Instance instance; + unreachable0Instantiate(&instance, resolveTestImports); + printStart("unreachable.0.wasm"); + assertEqualU32( + unreachable0_asX2DblockX2Dbroke(&instance), + 1u, + "as-block-broke()" + ); + assertEqualU32( + unreachable0_asX2DloopX2Dbroke(&instance), + 1u, + "as-loop-broke()" + ); + assertEqualU32( + unreachable0_asX2DifX2Dthen(&instance, 0u, 6u), + 6u, + "as-if-then(0u, 6u)" + ); + assertEqualU32( + unreachable0_asX2DifX2Delse(&instance, 1u, 6u), + 6u, + "as-if-else(1u, 6u)" + ); + assertEqualU32( + unreachable0_asX2DifX2DthenX2DnoX2Delse(&instance, 0u, 6u), + 6u, + "as-if-then-no-else(0u, 6u)" + ); +} diff --git a/tests/gen/assert_unreached-valid.0.c b/tests/gen/assert_unreached-valid.0.c new file mode 100644 index 0000000..108862a --- /dev/null +++ b/tests/gen/assert_unreached-valid.0.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_unreached-valid.0.h" + +void test() { + unreachedvalid0Instance instance; + unreachedvalid0Instantiate(&instance, resolveTestImports); + printStart("unreached-valid.0.wasm"); +} diff --git a/tests/gen/assert_unreached-valid.1.c b/tests/gen/assert_unreached-valid.1.c new file mode 100644 index 0000000..271aaae --- /dev/null +++ b/tests/gen/assert_unreached-valid.1.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_unreached-valid.1.h" + +void test() { + unreachedvalid1Instance instance; + unreachedvalid1Instantiate(&instance, resolveTestImports); + printStart("unreached-valid.1.wasm"); +} diff --git a/tests/gen/binary-leb128.0.wasm b/tests/gen/binary-leb128.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3950f79ae96c3f476bc2afb223128f8756ca54ea GIT binary patch literal 14 VcmZQbEY4+QU|?WnVPt4x000nD0nY#c literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.1.wasm b/tests/gen/binary-leb128.1.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a53aabf76e300c2dec9c39ad897c8a08cb661b87 GIT binary patch literal 17 YcmZQbEY4+QU|?WnXJlw literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.2.wasm b/tests/gen/binary-leb128.2.wasm new file mode 100644 index 0000000000000000000000000000000000000000..faed5fbe4fd14b9c79350b8992672904f6ffe78b GIT binary patch literal 16 XcmZQbEY4+QU|?WnV`OY%Xkq{W6$b)T literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.20.wasm b/tests/gen/binary-leb128.20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..93fb38a0d3f44f31a14a692ebf11380e3f2521d4 GIT binary patch literal 17 YcmZQbEY4+QU|?WlXRKpzYGB|702ti@oB#j- literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.21.wasm b/tests/gen/binary-leb128.21.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7ac145efc6fda8feb48276f8ad08dbb0d2b2d78b GIT binary patch literal 17 YcmZQbEY4+QU|?WlXRKpz`d`lt02^2Xng9R* literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.22.wasm b/tests/gen/binary-leb128.22.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6779e7a23ce7892a7eb2812bc95b92684ac87049 GIT binary patch literal 25 ZcmZQbEY4+QU|?Y5XRKpzYJdR-ZU9H+2BZK0 literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.23.wasm b/tests/gen/binary-leb128.23.wasm new file mode 100644 index 0000000000000000000000000000000000000000..708c663b08d3547ae0243352d7a9a65d3f8cddc1 GIT binary patch literal 25 ZcmZQbEY4+QU|?Y5XRKpz`VRy3+yH1K3z`4` literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.24.wasm b/tests/gen/binary-leb128.24.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e793dcbf23263e6c3fce116768e24cbd18b52bf8 GIT binary patch literal 18 XcmZQbEY4+QU|?Y7U}R`&00IU89l literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.29.wasm b/tests/gen/binary-leb128.29.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b7186d7d8696631809710a9f8d16451f42c3b931 GIT binary patch literal 20 YcmZQbEY4+Q00OS&1|VQCG%_{;04*v6ng9R* literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.3.wasm b/tests/gen/binary-leb128.3.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d83ba85f45d4c72ff651a39312076a5a4172708e GIT binary patch literal 19 acmZQbEY4+QU|?Y7WMph&XliI^U;qFhp##?d literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.30.wasm b/tests/gen/binary-leb128.30.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ba179584f5419913ea1c966622704fec0adebb52 GIT binary patch literal 22 bcmZQbEY4+QU|?Y6VN7Uh00M^kI>vecHW3A| literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.31.wasm b/tests/gen/binary-leb128.31.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c15d5aaab9d9b32e1b5c8d3771f10a89f0dc28d9 GIT binary patch literal 22 bcmZQbEY4+QU|?Y6VN77EuWM`o0)~13GlvDR literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.32.wasm b/tests/gen/binary-leb128.32.wasm new file mode 100644 index 0000000000000000000000000000000000000000..28dd08b01ac4a41d7513d6a2d5d9dc5aa97db588 GIT binary patch literal 44 xcmZQbEY4+QU|?WmWlUhKXJC?M>}UW2hT?+M{ literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.38.wasm b/tests/gen/binary-leb128.38.wasm new file mode 100644 index 0000000000000000000000000000000000000000..62b666d001402ca1c61c9b1ddbf265d753503155 GIT binary patch literal 29 icmZQbEY4+QU|?WmVN76PU}j=u;9_lT00IUk25ta5%>+yU literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.39.wasm b/tests/gen/binary-leb128.39.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d098584cf69cd4ab1f7fb41c5ed4d71f55fab642 GIT binary patch literal 47 vcmZQbEY4+QU|?WmVN76PU}j=uU}a`xVB`{H0Ey}dF#rGn literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.43.wasm b/tests/gen/binary-leb128.43.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cc6ec0cdc6802129f7075c692e33a2276919b15b GIT binary patch literal 21 ZcmZQbEY4+QU|?Y5W~^s$YybfUZU8J(1fT!_ literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.44.wasm b/tests/gen/binary-leb128.44.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a6ec0f0ce4905260ccd97da56061b03a2cb73cd6 GIT binary patch literal 21 ZcmZQbEY4+QU|?Y5W~^s${0{>4+yFVa2bur? literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.45.wasm b/tests/gen/binary-leb128.45.wasm new file mode 100644 index 0000000000000000000000000000000000000000..06d3f715e9b36790824838bab06f1fd66e16e2a9 GIT binary patch literal 26 ZcmZQbEY4+QU|?VqV60w!T+CMnfZG6H_yD3rheegafMp literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.50.wasm b/tests/gen/binary-leb128.50.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f0c1b625e1d55e22a3d64938089a7a096c26e068 GIT binary patch literal 19 acmZQbEY4+QU|?Y7WMph&XliI^Z~y=x;RF`| literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.51.wasm b/tests/gen/binary-leb128.51.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a84076646875cfadd04f7a9365da8300c5e342be GIT binary patch literal 25 dcmZQbEY4+QU|?Wn29n%dj152_;K;zu001uY1HJ$N literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.52.wasm b/tests/gen/binary-leb128.52.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0ca5f6c378349474c3a4d596ae1775046bf9d345 GIT binary patch literal 26 fcmZQbEY4+QU|?WjVJu)^;N)U#00IF=25trbHns#T literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.53.wasm b/tests/gen/binary-leb128.53.wasm new file mode 100644 index 0000000000000000000000000000000000000000..4b73d422f94d22b0ad9c463a573079706a8ead48 GIT binary patch literal 17 WcmZQbEY4+Q0D|U*h6VvfLn8nn&;z;v literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.54.wasm b/tests/gen/binary-leb128.54.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b9ab2ac33a5efc2efe462a120421ae81bcbc8a2c GIT binary patch literal 19 YcmZQbEY4+Q00PeDhK2?QLnC7o04NXySpWb4 literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.55.wasm b/tests/gen/binary-leb128.55.wasm new file mode 100644 index 0000000000000000000000000000000000000000..140c86979682b1032554caf913728a838e85d88c GIT binary patch literal 21 ccmZQbEY4+QU|?Y6W=v>mXlM|quVbtS0575iKL7v# literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.56.wasm b/tests/gen/binary-leb128.56.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8b30eef4184f2155b32023291c15386d7fd7e0c7 GIT binary patch literal 21 ccmZQbEY4+QU|?Y6W=vqJuWM{*XmF?p04>S|ZvX%Q literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.57.wasm b/tests/gen/binary-leb128.57.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f29dfa549ef3e98ea259231067cbe1d8334db3bc GIT binary patch literal 43 ycmZQbEY4+QU|?WmWlUhKXJC?I>}Y6c5GXE4O)g0-F5xUF%FHW?&onk-U;qHsz6&h? literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.58.wasm b/tests/gen/binary-leb128.58.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5c85c7207506543a0ec01591e402a31c8a73e29e GIT binary patch literal 43 ycmZQbEY4+QU|?WmWlUhKXJC?INHb($;9_B9V&DbV36Vl09hLa0{{R3 literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.67.wasm b/tests/gen/binary-leb128.67.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f7800684e9b5f1e7f18da6e54a93dadc81b36a99 GIT binary patch literal 41 wcmZQbEY4+QU|?WmVN76PU}j=uU}a`xVB`{D?*IS* literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.72.wasm b/tests/gen/binary-leb128.72.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a964e6fdc90af75bbc8bb22faee6fb5ff66412e4 GIT binary patch literal 20 ZcmZQbEY4+QU|?Y5VytIyYyg4+ZU85f1djj! literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.73.wasm b/tests/gen/binary-leb128.73.wasm new file mode 100644 index 0000000000000000000000000000000000000000..48eed1dd63ac9f34fe8cf12382a67f6eb354ea5c GIT binary patch literal 20 ZcmZQbEY4+QU|?Y5VytIy{0{{D+yF1X1}Xpm literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.74.wasm b/tests/gen/binary-leb128.74.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3d14d3144835e5694ce8993892d2fcb3aff54281 GIT binary patch literal 20 ZcmZQbEY4+QU|?Y5VytIyYybjzZU83n1U>)& literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.75.wasm b/tests/gen/binary-leb128.75.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c04dfc96345740a76aa82accaf13d0c08c50f935 GIT binary patch literal 20 ZcmZQbEY4+QU|?Y5VytIy{0{{F+yF2?25JBR literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.76.wasm b/tests/gen/binary-leb128.76.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8fa2b9fa4b7c4cdfe01896fd00bdfd158563f6da GIT binary patch literal 25 ZcmZQbEY4+QU|?Y5XRKpzYJh<{ZU9K(2O|iJ^NKGzDEiU0KD9X$$iO)1PVqgFOsW}On literal 0 HcmV?d00001 diff --git a/tests/gen/binary-leb128.json b/tests/gen/binary-leb128.json new file mode 100644 index 0000000..92e5976 --- /dev/null +++ b/tests/gen/binary-leb128.json @@ -0,0 +1,88 @@ +{"source_filename": "binary-leb128.wast", + "commands": [ + {"type": "module", "line": 2, "filename": "binary-leb128.0.wasm"}, + {"type": "module", "line": 7, "filename": "binary-leb128.1.wasm"}, + {"type": "module", "line": 12, "filename": "binary-leb128.2.wasm"}, + {"type": "module", "line": 18, "filename": "binary-leb128.3.wasm"}, + {"type": "module", "line": 24, "filename": "binary-leb128.4.wasm"}, + {"type": "module", "line": 42, "filename": "binary-leb128.5.wasm"}, + {"type": "module", "line": 50, "filename": "binary-leb128.6.wasm"}, + {"type": "module", "line": 58, "filename": "binary-leb128.7.wasm"}, + {"type": "module", "line": 67, "filename": "binary-leb128.8.wasm"}, + {"type": "module", "line": 76, "filename": "binary-leb128.9.wasm"}, + {"type": "module", "line": 88, "filename": "binary-leb128.10.wasm"}, + {"type": "module", "line": 100, "filename": "binary-leb128.11.wasm"}, + {"type": "module", "line": 112, "filename": "binary-leb128.12.wasm"}, + {"type": "module", "line": 121, "filename": "binary-leb128.13.wasm"}, + {"type": "module", "line": 134, "filename": "binary-leb128.14.wasm"}, + {"type": "module", "line": 147, "filename": "binary-leb128.15.wasm"}, + {"type": "module", "line": 159, "filename": "binary-leb128.16.wasm"}, + {"type": "module", "line": 166, "filename": "binary-leb128.17.wasm"}, + {"type": "module", "line": 173, "filename": "binary-leb128.18.wasm"}, + {"type": "module", "line": 180, "filename": "binary-leb128.19.wasm"}, + {"type": "module", "line": 188, "filename": "binary-leb128.20.wasm"}, + {"type": "module", "line": 195, "filename": "binary-leb128.21.wasm"}, + {"type": "module", "line": 202, "filename": "binary-leb128.22.wasm"}, + {"type": "module", "line": 209, "filename": "binary-leb128.23.wasm"}, + {"type": "assert_malformed", "line": 219, "filename": "binary-leb128.24.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 227, "filename": "binary-leb128.25.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 236, "filename": "binary-leb128.26.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 247, "filename": "binary-leb128.27.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 258, "filename": "binary-leb128.28.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 269, "filename": "binary-leb128.29.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 280, "filename": "binary-leb128.30.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 292, "filename": "binary-leb128.31.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 304, "filename": "binary-leb128.32.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 319, "filename": "binary-leb128.33.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 334, "filename": "binary-leb128.34.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 349, "filename": "binary-leb128.35.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 361, "filename": "binary-leb128.36.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 377, "filename": "binary-leb128.37.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 393, "filename": "binary-leb128.38.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 406, "filename": "binary-leb128.39.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 425, "filename": "binary-leb128.40.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 444, "filename": "binary-leb128.41.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 463, "filename": "binary-leb128.42.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 484, "filename": "binary-leb128.43.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 494, "filename": "binary-leb128.44.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 505, "filename": "binary-leb128.45.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 515, "filename": "binary-leb128.46.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 527, "filename": "binary-leb128.47.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 535, "filename": "binary-leb128.48.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 543, "filename": "binary-leb128.49.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 552, "filename": "binary-leb128.50.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 561, "filename": "binary-leb128.51.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 572, "filename": "binary-leb128.52.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 583, "filename": "binary-leb128.53.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 594, "filename": "binary-leb128.54.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 605, "filename": "binary-leb128.55.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 617, "filename": "binary-leb128.56.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 629, "filename": "binary-leb128.57.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 644, "filename": "binary-leb128.58.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 659, "filename": "binary-leb128.59.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 674, "filename": "binary-leb128.60.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 687, "filename": "binary-leb128.61.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 703, "filename": "binary-leb128.62.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 719, "filename": "binary-leb128.63.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 732, "filename": "binary-leb128.64.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 752, "filename": "binary-leb128.65.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 772, "filename": "binary-leb128.66.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 790, "filename": "binary-leb128.67.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 809, "filename": "binary-leb128.68.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 828, "filename": "binary-leb128.69.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 847, "filename": "binary-leb128.70.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 867, "filename": "binary-leb128.71.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 889, "filename": "binary-leb128.72.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 899, "filename": "binary-leb128.73.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 909, "filename": "binary-leb128.74.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 919, "filename": "binary-leb128.75.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 930, "filename": "binary-leb128.76.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 940, "filename": "binary-leb128.77.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 950, "filename": "binary-leb128.78.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 960, "filename": "binary-leb128.79.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "module", "line": 970, "filename": "binary-leb128.80.wasm"}, + {"type": "assert_malformed", "line": 991, "filename": "binary-leb128.81.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "module", "line": 1008, "filename": "binary-leb128.82.wasm"}, + {"type": "module", "line": 1016, "filename": "binary-leb128.83.wasm"}, + {"type": "module", "line": 1025, "filename": "binary-leb128.84.wasm"}, + {"type": "assert_malformed", "line": 1075, "filename": "binary-leb128.85.wasm", "text": "integer representation too long", "module_type": "binary"}]} diff --git a/tests/gen/binary.0.wasm b/tests/gen/binary.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d8fc92d022fbf4d1072da17bc8e0840054b51ddc GIT binary patch literal 8 PcmZQbEY4+QU|;|M2ZjMd literal 0 HcmV?d00001 diff --git a/tests/gen/binary.1.wasm b/tests/gen/binary.1.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d8fc92d022fbf4d1072da17bc8e0840054b51ddc GIT binary patch literal 8 PcmZQbEY4+QU|;|M2ZjMd literal 0 HcmV?d00001 diff --git a/tests/gen/binary.10.wasm b/tests/gen/binary.10.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3c3f36407a2fae04129380e811ac37a13b55fa21 GIT binary patch literal 8 Ncmc~TPGkTAMgR!h0Yd-) literal 0 HcmV?d00001 diff --git a/tests/gen/binary.100.wasm b/tests/gen/binary.100.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3741691ec4f94bb0b268cd6a0fac65be7969ae10 GIT binary patch literal 36 qcmZQbEY4+QU|?WmVN76PU}j=uU}0e_U|{6rVq$P);08)LG5`QTR07NZ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.101.wasm b/tests/gen/binary.101.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8b8e7081930d15651cc8fdff31c17c620ad3d246 GIT binary patch literal 45 vcmZQbEY4+QU|?WmVN76PU}j=uU}0e_U|{6rWn^$<;08*8NiG&fCI)T*T6qHY literal 0 HcmV?d00001 diff --git a/tests/gen/binary.102.wasm b/tests/gen/binary.102.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f7b7b516d1d6d07a9b10a6d343eea5631369664a GIT binary patch literal 16 XcmZQbEY4+QU|?WnW@KRGW@G>W5(oiV literal 0 HcmV?d00001 diff --git a/tests/gen/binary.103.wasm b/tests/gen/binary.103.wasm new file mode 100644 index 0000000000000000000000000000000000000000..67642efb643ef26005efd9616542217a74d98fb8 GIT binary patch literal 22 dcmZQbEY4+QU|?WnW@KRGW@ln>WZ-5@1OOZ*0uKNH literal 0 HcmV?d00001 diff --git a/tests/gen/binary.104.wasm b/tests/gen/binary.104.wasm new file mode 100644 index 0000000000000000000000000000000000000000..014d810fd30d2aa9d8a41faa35b75b3131a474a6 GIT binary patch literal 28 jcmZQbEY4+QU|?WnW@KRG=4E7XWZ-5@WN>8UW=sMADwG1m literal 0 HcmV?d00001 diff --git a/tests/gen/binary.105.wasm b/tests/gen/binary.105.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5183f19edb2f2acea35feaa18754d208c9c8a4e5 GIT binary patch literal 27 icmZQbEY4+QU|?WnW@KRG=3!)TWaeg1OiE5kO#=WdyaW&c literal 0 HcmV?d00001 diff --git a/tests/gen/binary.106.wasm b/tests/gen/binary.106.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9c3de5794df782f6cbd6d3c8b42054117212fb2c GIT binary patch literal 27 icmZQbEY4+QU|?WnW@KRG=3!)TWZ-5^OiE5kO#=WdlLQL@ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.107.wasm b/tests/gen/binary.107.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ba53fd593af0bd3da7d331deabf4f262ea4e90fc GIT binary patch literal 37 qcmZQbEY4+QU|?WmVN76PU}j=u;1XoyXJB%0WMlziJ_aUkZf*cYgaZ`- literal 0 HcmV?d00001 diff --git a/tests/gen/binary.108.wasm b/tests/gen/binary.108.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8d636efe426be4004aad21e6b3fa52241471b2a2 GIT binary patch literal 72 ucmZQbEY4+QU|?WWH*XM literal 0 HcmV?d00001 diff --git a/tests/gen/binary.11.wasm b/tests/gen/binary.11.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2af3890fd61bebaaf4fd176714678447a4e8ae6a GIT binary patch literal 8 NcmYc+&Shi(0ssie0Yd-) literal 0 HcmV?d00001 diff --git a/tests/gen/binary.110.wasm b/tests/gen/binary.110.wasm new file mode 100644 index 0000000000000000000000000000000000000000..309c6d82a4bc71c88f92c5e155b9b479f563bda3 GIT binary patch literal 30 hcmZQbEY4+QU|?WmVN76PU}j=u-~b~o7DgrpZU8J|0o?!q literal 0 HcmV?d00001 diff --git a/tests/gen/binary.111.wasm b/tests/gen/binary.111.wasm new file mode 100644 index 0000000000000000000000000000000000000000..78f4ac2660e714380f40c65c6c4159b8e864cfd4 GIT binary patch literal 31 hcmZQbEY4+QU|?WmVN76PU}j+R literal 0 HcmV?d00001 diff --git a/tests/gen/binary.121.wasm b/tests/gen/binary.121.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e681e7582154bb660ff4eb77bd0797d0ff2bd54e GIT binary patch literal 14 ScmZQbEY4+QU|?Wn1R($qOaV^- literal 0 HcmV?d00001 diff --git a/tests/gen/binary.122.wasm b/tests/gen/binary.122.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0a388464ca88e02533a0049026128b3493e1bf77 GIT binary patch literal 14 VcmZQbEY4+QU|?WkWME`u000jz0Z0G< literal 0 HcmV?d00001 diff --git a/tests/gen/binary.123.wasm b/tests/gen/binary.123.wasm new file mode 100644 index 0000000000000000000000000000000000000000..4d1bc47bb1dbbfb4a875b51e9faaeef66bd497cb GIT binary patch literal 14 VcmZQbEY4+QU|?WoWME=s000j+0ZIS> literal 0 HcmV?d00001 diff --git a/tests/gen/binary.124.wasm b/tests/gen/binary.124.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b85d74089ea5c044320b3041010a55080d677580 GIT binary patch literal 14 VcmZQbEY4+QU|?WjWMF1w000j_0Zae@ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.125.wasm b/tests/gen/binary.125.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1fb9850ac7ca21069033318ee660a6535abd07bb GIT binary patch literal 14 VcmZQbEY4+QU|?WnWME-r000k30Zsq_ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.126.wasm b/tests/gen/binary.126.wasm new file mode 100644 index 0000000000000000000000000000000000000000..40e37ec86906fa573080ab40e5a8a2ee6498a145 GIT binary patch literal 14 VcmZQbEY4+QU|?WlWME}v000kC0Z;${ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.127.wasm b/tests/gen/binary.127.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ac4ac95790ca793ec8f7c024a27f039985850d49 GIT binary patch literal 14 VcmZQbEY4+QU|?WpWME@t000kL0a5?} literal 0 HcmV?d00001 diff --git a/tests/gen/binary.128.wasm b/tests/gen/binary.128.wasm new file mode 100644 index 0000000000000000000000000000000000000000..52e21e15f58960bfbafcca533a1f210b169a91df GIT binary patch literal 18 ZcmZQbEY4+QU|?WoVr1Z8WMF4x000!I0a^e6 literal 0 HcmV?d00001 diff --git a/tests/gen/binary.129.wasm b/tests/gen/binary.129.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f3da613b1721adfaf741aedb0be673585d62e8b3 GIT binary patch literal 18 ZcmZQbEY4+QU|?WoVr1ZCWZ+BaV{eR0|Njb(*vvk literal 0 HcmV?d00001 diff --git a/tests/gen/binary.23.wasm b/tests/gen/binary.23.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e618c158bad8e52cba5520a1ad971eecc189039e GIT binary patch literal 4 LcmZQbEY1Z00(t>L literal 0 HcmV?d00001 diff --git a/tests/gen/binary.24.wasm b/tests/gen/binary.24.wasm new file mode 100644 index 0000000000000000000000000000000000000000..770c2dd5eb199a5fd4f7cc8a3d572d3caa1e7863 GIT binary patch literal 5 McmZQbEY4*F00X@NLjV8( literal 0 HcmV?d00001 diff --git a/tests/gen/binary.25.wasm b/tests/gen/binary.25.wasm new file mode 100644 index 0000000000000000000000000000000000000000..58b611fccf28ebf69330f499cf950f75150ad819 GIT binary patch literal 7 OcmZQbEY4+QU;qFHLjgko literal 0 HcmV?d00001 diff --git a/tests/gen/binary.26.wasm b/tests/gen/binary.26.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cf40ffe882e3eab61874886a221706b2cd89b239 GIT binary patch literal 8 NcmZQbEY4*B0sses0YU%( literal 0 HcmV?d00001 diff --git a/tests/gen/binary.27.wasm b/tests/gen/binary.27.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ab98a38a8b03708274f4ff1faf002a1fb97bb81e GIT binary patch literal 8 PcmZQbEY9U+U|;|M2etuE literal 0 HcmV?d00001 diff --git a/tests/gen/binary.28.wasm b/tests/gen/binary.28.wasm new file mode 100644 index 0000000000000000000000000000000000000000..baa5a992d0c21c2ba1434b22e517c391fadbe0c0 GIT binary patch literal 8 PcmZQbEY9U)U|;|M2f6`J literal 0 HcmV?d00001 diff --git a/tests/gen/binary.29.wasm b/tests/gen/binary.29.wasm new file mode 100644 index 0000000000000000000000000000000000000000..34afa7006cfb3b83e7019e593b6f809e66afe61e GIT binary patch literal 8 PcmZQbEY4+MWMBXQ2ZaGc literal 0 HcmV?d00001 diff --git a/tests/gen/binary.3.wasm b/tests/gen/binary.3.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d8fc92d022fbf4d1072da17bc8e0840054b51ddc GIT binary patch literal 8 PcmZQbEY4+QU|;|M2ZjMd literal 0 HcmV?d00001 diff --git a/tests/gen/binary.30.wasm b/tests/gen/binary.30.wasm new file mode 100644 index 0000000000000000000000000000000000000000..18d9137eb52dcec734b795713f9a3858b4d54186 GIT binary patch literal 8 PcmZQbEY4+MU}OLQ2ZRAb literal 0 HcmV?d00001 diff --git a/tests/gen/binary.31.wasm b/tests/gen/binary.31.wasm new file mode 100644 index 0000000000000000000000000000000000000000..99e262914a362fa87356f2fc2b6ff64110a68b83 GIT binary patch literal 8 PcmZQbEY4+MU|<9Q2ZI4a literal 0 HcmV?d00001 diff --git a/tests/gen/binary.32.wasm b/tests/gen/binary.32.wasm new file mode 100644 index 0000000000000000000000000000000000000000..95677bc6c4443a2dcdae1ae0e701e9008f49d6d7 GIT binary patch literal 11 ScmZQbEY4+QU|`^5WB>pQdjV1a literal 0 HcmV?d00001 diff --git a/tests/gen/binary.33.wasm b/tests/gen/binary.33.wasm new file mode 100644 index 0000000000000000000000000000000000000000..485f1018a4b70398172d809b65366addb8ef2735 GIT binary patch literal 11 ScmZQbEY4+QU|^_cWB>pR&H=*! literal 0 HcmV?d00001 diff --git a/tests/gen/binary.34.wasm b/tests/gen/binary.34.wasm new file mode 100644 index 0000000000000000000000000000000000000000..25135e269b8f74357f77a89ae814602cea452604 GIT binary patch literal 14 VcmZQbEY4+QU|?uqWME`u000sq0mc9T literal 0 HcmV?d00001 diff --git a/tests/gen/binary.35.wasm b/tests/gen/binary.35.wasm new file mode 100644 index 0000000000000000000000000000000000000000..15c7cbe16f8462d9c7fa03123196105294f0267f GIT binary patch literal 14 VcmZQbEY4+QU|?uuWME`u000sw0mlFU literal 0 HcmV?d00001 diff --git a/tests/gen/binary.36.wasm b/tests/gen/binary.36.wasm new file mode 100644 index 0000000000000000000000000000000000000000..47bc728ab5865d2dc52a02a58f10bcca06595bd6 GIT binary patch literal 14 VcmZQbEY4+QU|{&q$iT?R000#n0!07- literal 0 HcmV?d00001 diff --git a/tests/gen/binary.37.wasm b/tests/gen/binary.37.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f8ecc3f9cdb9f5ab438bfacefc4977f12711bfdd GIT binary patch literal 33 lcmZQbEY4+QU|?WmVN76PU}k1wVBq3mVqtJ(lwt)D+yFL70+j#& literal 0 HcmV?d00001 diff --git a/tests/gen/binary.38.wasm b/tests/gen/binary.38.wasm new file mode 100644 index 0000000000000000000000000000000000000000..132622004863bebf82477fc9b2faa52ba379551c GIT binary patch literal 26 hcmZQbEY4+QU|?WmVN76PU}j=u;9_HBVQ^%W0stlX0w4eY literal 0 HcmV?d00001 diff --git a/tests/gen/binary.39.wasm b/tests/gen/binary.39.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a5cceaa543142da66c743d1cf0a8af1821671ede GIT binary patch literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;9_HBVQ^%W;$~)KWB>p#;Q}xK literal 0 HcmV?d00001 diff --git a/tests/gen/binary.4.wasm b/tests/gen/binary.4.wasm new file mode 100644 index 0000000..e69de29 diff --git a/tests/gen/binary.40.wasm b/tests/gen/binary.40.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9a2ad59906104922f47546ef52ad5640586e3685 GIT binary patch literal 31 mcmZQbEY4+QU|?WmVN76PU}j=uU}I&hXK-ZTVqs)r;06FR=>nGk literal 0 HcmV?d00001 diff --git a/tests/gen/binary.41.wasm b/tests/gen/binary.41.wasm new file mode 100644 index 0000000000000000000000000000000000000000..890072c6469479f8b9751383ab50b4750b9d15e6 GIT binary patch literal 34 ncmZQbEY4+QU|?WmVN76PU}j=uU}XmKxi}fw85|iL7^S!YHd+FD literal 0 HcmV?d00001 diff --git a/tests/gen/binary.42.wasm b/tests/gen/binary.42.wasm new file mode 100644 index 0000000000000000000000000000000000000000..53106f9cf8d9bf582226207ba229e8c385ed9769 GIT binary patch literal 35 ocmZQbEY4+QU|?WmVN76PU}j=uU}XmKxwsfP7#tZK8W^Ow0Xn||`v3p{ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.43.wasm b/tests/gen/binary.43.wasm new file mode 100644 index 0000000000000000000000000000000000000000..05b63ebb13034f08f40fa4925b9af0021fc49138 GIT binary patch literal 36 pcmZQbEY4+QU|?WmVN76PU}j=uU}XmKxwsiQ85|iL8X6d+xB)+_1APDh literal 0 HcmV?d00001 diff --git a/tests/gen/binary.44.wasm b/tests/gen/binary.44.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ec187191b7c666893e5afc9331e29f00428b19c0 GIT binary patch literal 37 qcmZQbEY4+QU|?WmVN76PU}j=uU}XmKxp)}47#tZK8X6iHq__b^8w39U literal 0 HcmV?d00001 diff --git a/tests/gen/binary.45.wasm b/tests/gen/binary.45.wasm new file mode 100644 index 0000000000000000000000000000000000000000..69e6cd10510e4c87bc2c42f0b7a8a1d88c25268c GIT binary patch literal 38 qcmZQbEY4+QU|?WmVN76PU}j=uU}XmKxp*1585|iL8i0U7iW>k+4+Mb# literal 0 HcmV?d00001 diff --git a/tests/gen/binary.46.wasm b/tests/gen/binary.46.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5911b1534b90d56499d03c7884d2a6e4d8706514 GIT binary patch literal 32 lcmZQbEY4+QU|?WmVN76PU}j=uU}XmKx!4(58SELQxB)Q^0yF>s literal 0 HcmV?d00001 diff --git a/tests/gen/binary.47.wasm b/tests/gen/binary.47.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8c9b01bdc929164995069a69c1277b5dcd369966 GIT binary patch literal 33 mcmZQbEY4+QU|?WmVN76PU}j=uU}XmKxi}cv80;Guq__b!DFU?s literal 0 HcmV?d00001 diff --git a/tests/gen/binary.48.wasm b/tests/gen/binary.48.wasm new file mode 100644 index 0000000000000000000000000000000000000000..33058f1cdfb78fb14cbfbfb9354fa2058a75c97f GIT binary patch literal 34 ncmZQbEY4+QU|?WmVN76PU}j=uU}XmKxi}fw8SEPx7^JuXIm-h# literal 0 HcmV?d00001 diff --git a/tests/gen/binary.49.wasm b/tests/gen/binary.49.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ee113209ab49b8125489cff4dc64ea9ca87a05b3 GIT binary patch literal 35 ocmZQbEY4+QU|?WmVN76PU}j=uU}XmKxwsfP80;Gw8W^Ow0Y32qxc~qF literal 0 HcmV?d00001 diff --git a/tests/gen/binary.5.wasm b/tests/gen/binary.5.wasm new file mode 100644 index 0000000..6b2aaa7 --- /dev/null +++ b/tests/gen/binary.5.wasm @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/gen/binary.50.wasm b/tests/gen/binary.50.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e15591f6acc5e477c30dc98484c83c8813e6d6f3 GIT binary patch literal 36 ocmZQbEY4+QU|?WmVN76PU}j=uU}XmKxwsiQ8SEQ?fI*5I07RPvI{*Lx literal 0 HcmV?d00001 diff --git a/tests/gen/binary.51.wasm b/tests/gen/binary.51.wasm new file mode 100644 index 0000000000000000000000000000000000000000..30cb0f7e8512bf67e4c8480ebf4d1b49d7f518f1 GIT binary patch literal 32 lcmZQbEY4+QU|?WmVN76PU}j=u;NoHAVrl>afqJGoZU92B1nd9+ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.52.wasm b/tests/gen/binary.52.wasm new file mode 100644 index 0000000000000000000000000000000000000000..30cb0f7e8512bf67e4c8480ebf4d1b49d7f518f1 GIT binary patch literal 32 lcmZQbEY4+QU|?WmVN76PU}j=u;NoHAVrl>afqJGoZU92B1nd9+ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.53.wasm b/tests/gen/binary.53.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b68b0ac8c5dabf6a498895f5b41a16e57fe876c3 GIT binary patch literal 32 lcmZQbEY4+QU|?WmVN76PU}j=u;NoHAV)_pR{Pj$A+yGIG2Il|( literal 0 HcmV?d00001 diff --git a/tests/gen/binary.54.wasm b/tests/gen/binary.54.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8e793cea025f8b0f5ccfc13843771f0d1979ecea GIT binary patch literal 50 tcmZQbEY4+QU|?WmV@zPGuV-LpVr1ZwVU%KN00NeJFj)sCYr$j=K literal 0 HcmV?d00001 diff --git a/tests/gen/binary.55.wasm b/tests/gen/binary.55.wasm new file mode 100644 index 0000000000000000000000000000000000000000..daf30be192f3fff1ab56218cc3e0d2e199f2357b GIT binary patch literal 30 lcmZQbEY4+QU|?WmVN76PU}j=u;NoKBU}mUisAH<-1^_aT16BY4 literal 0 HcmV?d00001 diff --git a/tests/gen/binary.56.wasm b/tests/gen/binary.56.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7200d187b9606e78da5dd82bafc922b1b32ecb16 GIT binary patch literal 19 acmZQbEY4+QU|?WmVN76PU}k1wU;qFZ!~wAY literal 0 HcmV?d00001 diff --git a/tests/gen/binary.57.wasm b/tests/gen/binary.57.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7e89cfa36ad99549ce9aec54c20da5bf5699bbca GIT binary patch literal 14 VcmZQbEY4+QU|`^4VPs<91^^Fz0bc+B literal 0 HcmV?d00001 diff --git a/tests/gen/binary.58.wasm b/tests/gen/binary.58.wasm new file mode 100644 index 0000000000000000000000000000000000000000..67daf5fa30470810d6c39477b7d08bd8f336b354 GIT binary patch literal 25 gcmZQbEY4+QU|?WmVN76PU}k1wVBlh5WMbe303%NU%>V!Z literal 0 HcmV?d00001 diff --git a/tests/gen/binary.59.wasm b/tests/gen/binary.59.wasm new file mode 100644 index 0000000000000000000000000000000000000000..563c1ef21fe0ca337d0500cecb559c1ca8383767 GIT binary patch literal 27 gcmZQbEY4+QU|?WmVN76PU}j=u;9_TDV&DcM04E*++yDRo literal 0 HcmV?d00001 diff --git a/tests/gen/binary.6.wasm b/tests/gen/binary.6.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d5f15228b7b9b2e8a8b68d33f870da7c69b486f4 GIT binary patch literal 3 KcmZQbECv7pH~`fE literal 0 HcmV?d00001 diff --git a/tests/gen/binary.60.wasm b/tests/gen/binary.60.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a72bfb1be3ef9c064eec4f43aad72377d4974053 GIT binary patch literal 11 ScmZQbEY4+QU|?WoWB>pQS^-A@ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.61.wasm b/tests/gen/binary.61.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0fa05ec7b65579051701d13f3bc6bc11c66f9370 GIT binary patch literal 11 ScmZQbEY4+QU|`^4WB>pQZvjpK literal 0 HcmV?d00001 diff --git a/tests/gen/binary.62.wasm b/tests/gen/binary.62.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c18e5de5e07930756defaf3641739ad08243014c GIT binary patch literal 18 ZcmZQbEY4+QU|`^3WaegNVq{=s000#@0cQXJ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.63.wasm b/tests/gen/binary.63.wasm new file mode 100644 index 0000000000000000000000000000000000000000..60f5299f141b6ed4a6144e329e963a9e706bb18d GIT binary patch literal 18 ZcmZQbEY4+QU|`^3WaMULVq{=s000#z0c8LH literal 0 HcmV?d00001 diff --git a/tests/gen/binary.64.wasm b/tests/gen/binary.64.wasm new file mode 100644 index 0000000000000000000000000000000000000000..55d87da9129233d286ad470ea8342f30aa713901 GIT binary patch literal 16 XcmZQbEY4+QU|?WnW@KRGVPpgV5)1)b literal 0 HcmV?d00001 diff --git a/tests/gen/binary.65.wasm b/tests/gen/binary.65.wasm new file mode 100644 index 0000000000000000000000000000000000000000..451a27b69f72625f00c285db52393dadca56528e GIT binary patch literal 44 ucmZQbEY4+QU|?WmVN76PU}j=uU}XmKx%e1)7#zXy4+jGSH#ajQBLe_i;sd_` literal 0 HcmV?d00001 diff --git a/tests/gen/binary.66.wasm b/tests/gen/binary.66.wasm new file mode 100644 index 0000000000000000000000000000000000000000..03d3ccfc64a074c43ce2ee6f3557da5b69c8ece7 GIT binary patch literal 37 rcmZQbEY4+QU|?WmVN76PU}j=uU}XmKx!4(58UAoGaC0*=GBN-FLWu(J literal 0 HcmV?d00001 diff --git a/tests/gen/binary.67.wasm b/tests/gen/binary.67.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7f64e5f14eacf713c716a94ac195385f84199753 GIT binary patch literal 44 wcmWN_(G36)3`NoVw2jau89*X2x&=6&hk2F&xdvDf?%ELcw^hZ~CA+JT4_&|m(f|Me literal 0 HcmV?d00001 diff --git a/tests/gen/binary.68.wasm b/tests/gen/binary.68.wasm new file mode 100644 index 0000000000000000000000000000000000000000..726e720cd9141afe7090dd2d0bba4fbe8939d871 GIT binary patch literal 44 xcmWN_(G36)5JbVZ+(o!1DL^7ofF4!Ed=6tz0Wx*SNtkJY=fAbck1o+niFjQ+1Hb?P literal 0 HcmV?d00001 diff --git a/tests/gen/binary.69.wasm b/tests/gen/binary.69.wasm new file mode 100644 index 0000000000000000000000000000000000000000..bf252f59a4b24ed259e5fdbd2d4df3f38c9c7dc6 GIT binary patch literal 11 ScmZQbEY4+QU|?WmWB>pQQ~^Z* literal 0 HcmV?d00001 diff --git a/tests/gen/binary.7.wasm b/tests/gen/binary.7.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ef2324c30dece09d6b9ee2ee2c1efd02a2b5be49 GIT binary patch literal 4 LcmYc+&Sd}q1G@o2 literal 0 HcmV?d00001 diff --git a/tests/gen/binary.70.wasm b/tests/gen/binary.70.wasm new file mode 100644 index 0000000000000000000000000000000000000000..40a92f4239bd62c1c230a8aa70d7e23c4c3312d7 GIT binary patch literal 14 VcmZQbEY4+QU|?WmXG&mT000na0j&T4 literal 0 HcmV?d00001 diff --git a/tests/gen/binary.71.wasm b/tests/gen/binary.71.wasm new file mode 100644 index 0000000000000000000000000000000000000000..917edfc57e228696c29e9f5a249b27a2cd2d420a GIT binary patch literal 17 WcmZQbEY4+QU|?WmXG~yV03rYui2@7& literal 0 HcmV?d00001 diff --git a/tests/gen/binary.72.wasm b/tests/gen/binary.72.wasm new file mode 100644 index 0000000000000000000000000000000000000000..aa1bdd3786e363219934bd86a14a251346fae750 GIT binary patch literal 18 ZcmZQbEY4+QU|?WmWlUhKXJBGv000?`0xbXl literal 0 HcmV?d00001 diff --git a/tests/gen/binary.73.wasm b/tests/gen/binary.73.wasm new file mode 100644 index 0000000000000000000000000000000000000000..43a017a5b2e39757127a9de5244ea99215f52c86 GIT binary patch literal 14 TcmZQbEY4+QU|?Wk0g@~L4?qD< literal 0 HcmV?d00001 diff --git a/tests/gen/binary.74.wasm b/tests/gen/binary.74.wasm new file mode 100644 index 0000000000000000000000000000000000000000..bb6fecd80fba4a123deeb11a3d48ef90053e97a5 GIT binary patch literal 15 UcmZQbEY4+QU|?Wk1(GZb01%V`PXGV_ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.75.wasm b/tests/gen/binary.75.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8677ca2fc1b61a681d0e6b61297c3475ba624763 GIT binary patch literal 14 TcmZQbEY4+QU|?Wk0g|i$4?zJ> literal 0 HcmV?d00001 diff --git a/tests/gen/binary.76.wasm b/tests/gen/binary.76.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d10b25b7a57c645a8f43f3ea94c42779daf21981 GIT binary patch literal 15 UcmZQbEY4+QU|?Wk1(K``01%b|Pyhe` literal 0 HcmV?d00001 diff --git a/tests/gen/binary.77.wasm b/tests/gen/binary.77.wasm new file mode 100644 index 0000000000000000000000000000000000000000..13650510bd351eb53ea86f4319518a3b0b462b70 GIT binary patch literal 14 TcmZQbEY4+QU|?Wk0g?>>54-`& literal 0 HcmV?d00001 diff --git a/tests/gen/binary.78.wasm b/tests/gen/binary.78.wasm new file mode 100644 index 0000000000000000000000000000000000000000..30b6b32d463a0a877be9852ef8cff17fcb69da63 GIT binary patch literal 15 UcmZQbEY4+QU|?Wk1(FR601=D<%K!iX literal 0 HcmV?d00001 diff --git a/tests/gen/binary.79.wasm b/tests/gen/binary.79.wasm new file mode 100644 index 0000000000000000000000000000000000000000..65c77c11907dbe86ea1c5774b67de7d52cf380ff GIT binary patch literal 39 ucmZQbEY4+QU|?WmWlUhKXJ8Uz;wUaiO)g0-F5xUF%FHW?&onk-U;qG{>pQT>(e{ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.82.wasm b/tests/gen/binary.82.wasm new file mode 100644 index 0000000000000000000000000000000000000000..204f689cc6aed1c0ec3cce66e3dd9b4b8b82ae0e GIT binary patch literal 11 ScmZQbEY4+QU|?WjWCQ>UUI9q} literal 0 HcmV?d00001 diff --git a/tests/gen/binary.83.wasm b/tests/gen/binary.83.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a2492cb98539f82debdb2711a08d0b20da46f7a1 GIT binary patch literal 13 UcmZQbEY4+QU|?WjW-MR=01ny#y#N3J literal 0 HcmV?d00001 diff --git a/tests/gen/binary.84.wasm b/tests/gen/binary.84.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2bb1999ce7b42ab13504172131ecfdd4ea677081 GIT binary patch literal 14 VcmZQbEY4+QU|?WjVJu)`000o20lokL literal 0 HcmV?d00001 diff --git a/tests/gen/binary.85.wasm b/tests/gen/binary.85.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cc2e20d414c116c7e87b0084bc371a365d73f9e3 GIT binary patch literal 16 VcmZQbEY4+QU|?WjV=QO{(f}4B0zUu% literal 0 HcmV?d00001 diff --git a/tests/gen/binary.86.wasm b/tests/gen/binary.86.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cd4d6a3ae402bd2bc03580e5c8041e5d6482dfbb GIT binary patch literal 11 ScmZQbEY4+QU|?WnWB>pQU;#-0 literal 0 HcmV?d00001 diff --git a/tests/gen/binary.87.wasm b/tests/gen/binary.87.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a5eb4ed65219238289299e5cdabbadd26428d4c8 GIT binary patch literal 11 ScmZQbEY4+QU|?WnWCQ>UVF5}2 literal 0 HcmV?d00001 diff --git a/tests/gen/binary.88.wasm b/tests/gen/binary.88.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0138762836696b5f98a9aef86615e302de25609c GIT binary patch literal 12 TcmZQbEY4+QU|?WnVq^jU46p%B literal 0 HcmV?d00001 diff --git a/tests/gen/binary.89.wasm b/tests/gen/binary.89.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a080710662bf2018355d3c2e7d87d25f98694458 GIT binary patch literal 13 UcmZQbEY4+QU|?WnW@KUj01g2GP5=M^ literal 0 HcmV?d00001 diff --git a/tests/gen/binary.9.wasm b/tests/gen/binary.9.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8be372f7c86494bc4c70e5648f2d66df0ea874d8 GIT binary patch literal 8 Pcmc~TPGn$YU|;|M2;Tui literal 0 HcmV?d00001 diff --git a/tests/gen/binary.90.wasm b/tests/gen/binary.90.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5b354f5a7b6f8da380c8df97ef0a150e1c02c9fd GIT binary patch literal 15 UcmZQbEY4+QU|?WnWo!ge01~AE&j0`b literal 0 HcmV?d00001 diff --git a/tests/gen/binary.91.wasm b/tests/gen/binary.91.wasm new file mode 100644 index 0000000000000000000000000000000000000000..84af5af1883c9374b8715c73a9c49ae6ddb67c49 GIT binary patch literal 15 UcmZQbEY4+QU|?WnWo!h}01~JH&;S4c literal 0 HcmV?d00001 diff --git a/tests/gen/binary.92.wasm b/tests/gen/binary.92.wasm new file mode 100644 index 0000000000000000000000000000000000000000..78a70f52e5336d323f300db33c37f374170825c0 GIT binary patch literal 11 ScmZQbEY4+QU|?WlWB>pQV*yG4 literal 0 HcmV?d00001 diff --git a/tests/gen/binary.93.wasm b/tests/gen/binary.93.wasm new file mode 100644 index 0000000000000000000000000000000000000000..11eadff0c724dd2b4ddfb21a38440f63225731cc GIT binary patch literal 16 XcmZQbEY4+QU|?WlW2$FxWZ(t>6-@#h literal 0 HcmV?d00001 diff --git a/tests/gen/binary.94.wasm b/tests/gen/binary.94.wasm new file mode 100644 index 0000000000000000000000000000000000000000..4d27d5b5dbc9b014c23bb4853ec1b20010008175 GIT binary patch literal 21 YcmZQbEY4+QU|?Y5W~^s$WZ(u903%ZZ>i_@% literal 0 HcmV?d00001 diff --git a/tests/gen/binary.95.wasm b/tests/gen/binary.95.wasm new file mode 100644 index 0000000000000000000000000000000000000000..26a8d65fe03152a0e64b887b15b9df29465cb33b GIT binary patch literal 31 kcmZQbEY4+QU|?WmVN76PU}k1wU|?rt;9_TDV&DcM04`Vo<^TWy literal 0 HcmV?d00001 diff --git a/tests/gen/binary.96.wasm b/tests/gen/binary.96.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2ca7f57708713953bce6b21af60e3ab8d632d28d GIT binary patch literal 36 pcmZQbEY4+QU|?WmVN76PU}k1wU|?rsVoEb)VBlhBVq)M1A^<-50)_wp literal 0 HcmV?d00001 diff --git a/tests/gen/binary.97.wasm b/tests/gen/binary.97.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2a75cdb0aa8715ed24dc992ac4d4116c95355394 GIT binary patch literal 41 ucmZQbEY4+QU|?WmVN76PU}k1wU|{EFWJ)t+U|>o!VqoNAXJTUD1|k4bw*w^r literal 0 HcmV?d00001 diff --git a/tests/gen/binary.98.wasm b/tests/gen/binary.98.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8a2f86bb9f4d28f50727ead5b6d5db858d24aa6b GIT binary patch literal 33 ncmV~$!3h8$5CpNAb3ba6T7V$fKbWxJ5il-jC5acij9APMHrN7B literal 0 HcmV?d00001 diff --git a/tests/gen/binary.99.wasm b/tests/gen/binary.99.wasm new file mode 100644 index 0000000000000000000000000000000000000000..37b74d256fa95466b54bd49b1b52f442dedbfbd8 GIT binary patch literal 33 ocmZQbEY4+QU|?WmVN76PU}j=uU}0e_U|{5AXJT+<;AUh105}-}hyVZp literal 0 HcmV?d00001 diff --git a/tests/gen/binary.json b/tests/gen/binary.json new file mode 100644 index 0000000..9618a48 --- /dev/null +++ b/tests/gen/binary.json @@ -0,0 +1,135 @@ +{"source_filename": "binary.wast", + "commands": [ + {"type": "module", "line": 1, "filename": "binary.0.wasm"}, + {"type": "module", "line": 2, "filename": "binary.1.wasm"}, + {"type": "module", "line": 3, "name": "$M1", "filename": "binary.2.wasm"}, + {"type": "module", "line": 4, "name": "$M2", "filename": "binary.3.wasm"}, + {"type": "assert_malformed", "line": 6, "filename": "binary.4.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 7, "filename": "binary.5.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 8, "filename": "binary.6.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 9, "filename": "binary.7.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 10, "filename": "binary.8.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 11, "filename": "binary.9.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 12, "filename": "binary.10.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 13, "filename": "binary.11.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 14, "filename": "binary.12.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 15, "filename": "binary.13.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 16, "filename": "binary.14.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 17, "filename": "binary.15.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 18, "filename": "binary.16.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 21, "filename": "binary.17.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 24, "filename": "binary.18.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 25, "filename": "binary.19.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 28, "filename": "binary.20.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 31, "filename": "binary.21.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 34, "filename": "binary.22.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 37, "filename": "binary.23.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 38, "filename": "binary.24.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 39, "filename": "binary.25.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 40, "filename": "binary.26.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 41, "filename": "binary.27.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 42, "filename": "binary.28.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 43, "filename": "binary.29.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 44, "filename": "binary.30.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 45, "filename": "binary.31.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 48, "filename": "binary.32.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 49, "filename": "binary.33.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 50, "filename": "binary.34.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 51, "filename": "binary.35.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 52, "filename": "binary.36.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 56, "filename": "binary.37.wasm", "text": "END opcode expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 77, "filename": "binary.38.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 93, "filename": "binary.39.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 113, "filename": "binary.40.wasm", "text": "illegal opcode", "module_type": "binary"}, + {"type": "assert_malformed", "line": 126, "filename": "binary.41.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 146, "filename": "binary.42.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 166, "filename": "binary.43.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 185, "filename": "binary.44.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 204, "filename": "binary.45.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 224, "filename": "binary.46.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 243, "filename": "binary.47.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 262, "filename": "binary.48.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 280, "filename": "binary.49.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 298, "filename": "binary.50.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 317, "filename": "binary.51.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 334, "filename": "binary.52.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 351, "filename": "binary.53.wasm", "text": "too many locals", "module_type": "binary"}, + {"type": "assert_malformed", "line": 367, "filename": "binary.54.wasm", "text": "too many locals", "module_type": "binary"}, + {"type": "module", "line": 385, "filename": "binary.55.wasm"}, + {"type": "assert_malformed", "line": 401, "filename": "binary.56.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 411, "filename": "binary.57.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 420, "filename": "binary.58.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 431, "filename": "binary.59.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "module", "line": 441, "filename": "binary.60.wasm"}, + {"type": "module", "line": 447, "filename": "binary.61.wasm"}, + {"type": "assert_malformed", "line": 454, "filename": "binary.62.wasm", "text": "data count and data section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 466, "filename": "binary.63.wasm", "text": "data count and data section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 478, "filename": "binary.64.wasm", "text": "data count and data section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 495, "filename": "binary.65.wasm", "text": "data count section required", "module_type": "binary"}, + {"type": "assert_malformed", "line": 518, "filename": "binary.66.wasm", "text": "data count section required", "module_type": "binary"}, + {"type": "assert_malformed", "line": 538, "filename": "binary.67.wasm", "text": "illegal opcode", "module_type": "binary"}, + {"type": "assert_malformed", "line": 566, "filename": "binary.68.wasm", "text": "malformed reference type", "module_type": "binary"}, + {"type": "module", "line": 645, "filename": "binary.69.wasm"}, + {"type": "assert_malformed", "line": 652, "filename": "binary.70.wasm", "text": "length out of bounds", "module_type": "binary"}, + {"type": "assert_malformed", "line": 663, "filename": "binary.71.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 673, "filename": "binary.72.wasm"}, + {"type": "assert_malformed", "line": 682, "filename": "binary.73.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 692, "filename": "binary.74.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 703, "filename": "binary.75.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 713, "filename": "binary.76.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 724, "filename": "binary.77.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 734, "filename": "binary.78.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 747, "filename": "binary.79.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 766, "filename": "binary.80.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 790, "filename": "binary.81.wasm"}, + {"type": "assert_malformed", "line": 797, "filename": "binary.82.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 807, "filename": "binary.83.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 816, "filename": "binary.84.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 826, "filename": "binary.85.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "module", "line": 837, "filename": "binary.86.wasm"}, + {"type": "assert_malformed", "line": 844, "filename": "binary.87.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 854, "filename": "binary.88.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 862, "filename": "binary.89.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 871, "filename": "binary.90.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 880, "filename": "binary.91.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "module", "line": 890, "filename": "binary.92.wasm"}, + {"type": "assert_malformed", "line": 897, "filename": "binary.93.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 908, "filename": "binary.94.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 918, "filename": "binary.95.wasm"}, + {"type": "assert_malformed", "line": 931, "filename": "binary.96.wasm", "text": "length out of bounds", "module_type": "binary"}, + {"type": "assert_malformed", "line": 952, "filename": "binary.97.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 972, "filename": "binary.98.wasm"}, + {"type": "assert_malformed", "line": 986, "filename": "binary.99.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1002, "filename": "binary.100.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1019, "filename": "binary.101.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 1036, "filename": "binary.102.wasm"}, + {"type": "assert_malformed", "line": 1045, "filename": "binary.103.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1058, "filename": "binary.104.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1071, "filename": "binary.105.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1085, "filename": "binary.106.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 1098, "filename": "binary.107.wasm"}, + {"type": "assert_malformed", "line": 1116, "filename": "binary.108.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "module", "line": 1149, "filename": "binary.109.wasm"}, + {"type": "assert_malformed", "line": 1163, "filename": "binary.110.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1180, "filename": "binary.111.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1192, "filename": "binary.112.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1204, "filename": "binary.113.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1214, "filename": "binary.114.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1224, "filename": "binary.115.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1234, "filename": "binary.116.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1244, "filename": "binary.117.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1254, "filename": "binary.118.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1264, "filename": "binary.119.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1274, "filename": "binary.120.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1284, "filename": "binary.121.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1294, "filename": "binary.122.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1304, "filename": "binary.123.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1314, "filename": "binary.124.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1324, "filename": "binary.125.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1334, "filename": "binary.126.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1344, "filename": "binary.127.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1354, "filename": "binary.128.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1365, "filename": "binary.129.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1376, "filename": "binary.130.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1386, "filename": "binary.131.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1396, "filename": "binary.132.wasm", "text": "unexpected content after last section", "module_type": "binary"}]} diff --git a/tests/gen/global.17.wasm b/tests/gen/global.17.wasm index ec156cfd3636337565ef39fe44ae2a91a0d30d99..82f6b95ccfbd69e500d54b79bdd19316f6bea2f0 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?Y5W~yg!WZH03vk)&j0`b diff --git a/tests/gen/global.18.wasm b/tests/gen/global.18.wasm index 07b59aac3da649477ad8364bc6419a0fc364adab..82f6b95ccfbd69e500d54b79bdd19316f6bea2f0 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?Y5W~yg!WZHe#-4U}IyfXHaJ11^}N72hsol diff --git a/tests/gen/global.19.wasm b/tests/gen/global.19.wasm index 8c2284f76d5f2f5fac83a366af95094628c772f2..ec156cfd3636337565ef39fe44ae2a91a0d30d99 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?Y5W~ygUX5_ACaAe>H03vk)&j0`b literal 42 xcmZQbEY4+QU|?X9U}PytEiU0p&&f|p%+bv)Ez!+1He#-4WMgBjXHaI~1_01!30wdG diff --git a/tests/gen/global.20.wasm b/tests/gen/global.20.wasm index 4b98efd14b173d643e98efc83afd0d1e830e5df5..07b59aac3da649477ad8364bc6419a0fc364adab 100644 GIT binary patch literal 38 tcmZQbEY4+QU|?VpVPq*uEiU0o&&f|p%+bv>He#-4U}IyfXHaJ11^}N72hsol literal 34 pcmZQbEY4+QU|?X9VB{z+NKGzDEiU0o&&f|p%!$u5He#-4004~c2>Sp4 diff --git a/tests/gen/global.21.wasm b/tests/gen/global.21.wasm index f6e96259bea2503c56cde1a71079bf8d4efbfcc1..8c2284f76d5f2f5fac83a366af95094628c772f2 100644 GIT binary patch literal 42 xcmZQbEY4+QU|?X9U}PytEiU0p&&f|p%+bv)Ez!+1He#-4WMgBjXHaI~1_01!30wdG literal 38 tcmZQbEY4+QU|?XH(a_Mqz{pWtkeXbQT3o`Fo|B)Hm=m9AY{Xp81OUlo3jF{8 diff --git a/tests/gen/global.22.wasm b/tests/gen/global.22.wasm index dd30818b0bfc676d60ef214166c17d1f02d843fb..4b98efd14b173d643e98efc83afd0d1e830e5df5 100644 GIT binary patch delta 18 ZcmY#W;$lcF&Shj^U|^D%$S2Oo000@@0%iaJ literal 38 tcmZQbEY4+QU|?XH(a_Mqz{pWtkeXbQT3o`Fo|B)Hm=m9AY{Xpu9{|c>3;F;6 diff --git a/tests/gen/global.23.wasm b/tests/gen/global.23.wasm index f634698e68557f1aad524a462d3e405dbe102fa6..f6e96259bea2503c56cde1a71079bf8d4efbfcc1 100644 GIT binary patch literal 38 tcmZQbEY4+QU|?XH(a_Mqz{pWtkeXbQT3o`Fo|B)Hm=m9AY{Xp81OUlo3jF{8 literal 16 XcmZQbEY4+QU|?WlW2|RzWZ(t>6-NRa diff --git a/tests/gen/global.24.wasm b/tests/gen/global.24.wasm index e49f668459477fad226d3d3b02140ca5e026df89..dd30818b0bfc676d60ef214166c17d1f02d843fb 100644 GIT binary patch literal 38 tcmZQbEY4+QU|?XH(a_Mqz{pWtkeXbQT3o`Fo|B)Hm=m9AY{Xpu9{|c>3;F;6 literal 20 bcmZQbEY4+QU|?WtYiMX-V610yWZ(t>EsF#l diff --git a/tests/gen/global.25.wasm b/tests/gen/global.25.wasm index f7f54b88e6da7cdf92cc4aa6b3732250bba9fed4..f634698e68557f1aad524a462d3e405dbe102fa6 100644 GIT binary patch literal 16 XcmZQbEY4+QU|?WlW2|RzWZ(t>6-NRa literal 20 bcmZQbEY4+QU|?WtYiMX-V66Y|$iNK%F@FUb diff --git a/tests/gen/global.26.wasm b/tests/gen/global.26.wasm index 95d1e5508462ec0fab49ea8b12d53aad18b5a275..e49f668459477fad226d3d3b02140ca5e026df89 100644 GIT binary patch literal 20 bcmZQbEY4+QU|?WtYiMX-V610yWZ(t>EsF#l literal 27 icmZQbEY4+QU|?WmWlUgTtY>CoWZ+_BWMNQd;06FK$^vr$ diff --git a/tests/gen/global.27.wasm b/tests/gen/global.27.wasm index a7193d187322694ed372fe1c463a1540a82eeb43..f7f54b88e6da7cdf92cc4aa6b3732250bba9fed4 100644 GIT binary patch literal 20 bcmZQbEY4+QU|?WtYiMX-V66Y|$iNK%F@FUb literal 35 qcmZQbEY4+QU|?WmWlUgTtY>CoWME@stY>g!;O1guWMNQdCoWZ+_BWMNQd;06FK$^vr$ literal 53 zcmZQbEY4+QU|?WmWlUgTtY?y7CoWME@stY>g!;O1guWMNQdrFU}OW*Dooq}eYOh9 diff --git a/tests/gen/global.34.wasm b/tests/gen/global.34.wasm index 9596b6f605cdb06f64850369fb40f888d8af1427..6eb4a99be7cb6cced010eb9006b6d7e928024e64 100644 GIT binary patch literal 54 zcmZQbEY4+QU|?WmVN76PV3J_uC@x4%E=ese;Y!cRPfE;*&onk-u4iCoVr1arU}R%( JWKdz`1^^~w3Gn~` literal 34 pcmZQbEY4+QU|?WmVN76PU}j=uU}IyfXLMxX=3--HVNhY<1^_*N0?Ysa diff --git a/tests/gen/global.35.wasm b/tests/gen/global.35.wasm index 812b82c133d52a6ebf3c164c8146d03239bd2518..ae6821b24bdf39eb662e745276ea9d183b9d4db3 100644 GIT binary patch literal 62 zcmZQbEY4+QU|?WmVN76PV3J_uC@x4%E=ese;Y!cRPfE;*&onk-u4iCoVq{=rW2|Rz PWZ>rFU}OW*Dooq}eYOh9 literal 39 ucmZQbEY4+QU|?WmVN76PU}j=uU}IyfXLMxX=Hh1LWN>6)a!_I5<^}*xivwf; diff --git a/tests/gen/global.36.wasm b/tests/gen/global.36.wasm index f1f2afdf5fc92622d8db7661a08f0342157cc51c..9596b6f605cdb06f64850369fb40f888d8af1427 100644 GIT binary patch delta 12 TcmY#anjp>2#>m2;!oUpx3fuuU delta 17 YcmY#VpCHY{&B)2%$iVEN!obZ902Dm|)Bpeg diff --git a/tests/gen/global.37.wasm b/tests/gen/global.37.wasm index 2be598960fc1408b51b6572097e8423e71568740..812b82c133d52a6ebf3c164c8146d03239bd2518 100644 GIT binary patch delta 17 YcmdN?pCHY{&B)2%$iU>F!obZ902HnP+5i9m delta 19 YcmY$_oFL7|%gD{(2!t#SDh%A*02$5#BLDyZ diff --git a/tests/gen/global.38.wasm b/tests/gen/global.38.wasm index 3b5313becd43bdd967d12be333d85a68bec911b2..f1f2afdf5fc92622d8db7661a08f0342157cc51c 100644 GIT binary patch delta 17 YcmdNF!obVG%?$t<83FPD diff --git a/tests/gen/global.41.wasm b/tests/gen/global.41.wasm index c466c9fac18e606cd00b83c0d013e903f1025f9f..57031c8822885edf4aa76a9bec5a0db8477fd680 100644 GIT binary patch delta 19 acmdPWoFL7|%gD{($iU>F!ob78%?$t;?*Z=s delta 20 bcmdPYnjp>3$H>Fr$iU>F!obJCz|9Q+8vOzE diff --git a/tests/gen/global.42.wasm b/tests/gen/global.42.wasm index 908519ffc342e06f8534e01a7f0d74825010e4e4..d61c881207dec3e70e777935808c1a8cf03c956f 100644 GIT binary patch delta 19 acmY$^oFL7|%gD{($iU>F!obVG%?$t;ZUN~4 delta 13 UcmdN?o*>P^&dAE3!obfB01RRQO8@`> diff --git a/tests/gen/global.43.wasm b/tests/gen/global.43.wasm index b9c97f0fe187578cd921b734ff33e1fea49af5cb..c466c9fac18e606cd00b83c0d013e903f1025f9f 100644 GIT binary patch delta 20 bcmY$_njp>3$H>Fr$iU>F!obJCz|9Q+8r1>v delta 17 YcmdN=pCHY{&B)21!r;j0$Ry1T02HtR?EnA( diff --git a/tests/gen/global.44.wasm b/tests/gen/global.44.wasm index 550efbe28db4723fb8a29f3445736839ea8ab1fb..908519ffc342e06f8534e01a7f0d74825010e4e4 100644 GIT binary patch literal 35 qcmZQbEY4+QU|?WmVN76PU}j=uU}IyfXLMxX=3-}LWl&+@=LP^kYXaQ> literal 47 zcmZQbEY4+QU|?Y6WJ+LQNMNjItY>CsVqj!r12P>MxVd literal 69 zcmWN_!3lsc5JkcFH!%{|i`ak%8?lpEfFM}Fw(gz=hWmR2sM}B|29#o`PI@J^mU-cQ R7KvDPs~q@>#hJB%`ws(;1~UKv diff --git a/tests/gen/global.46.wasm b/tests/gen/global.46.wasm new file mode 100644 index 0000000000000000000000000000000000000000..550efbe28db4723fb8a29f3445736839ea8ab1fb GIT binary patch literal 47 zcmZQbEY4+QU|?Y6WJ+LQNMNjItY>CsVqj!r12P>MxVd#hJB%`ws(;1~UKv literal 0 HcmV?d00001 diff --git a/tests/gen/global.48.wat b/tests/gen/global.48.wat index 7c7a305..f0be4a5 100644 --- a/tests/gen/global.48.wat +++ b/tests/gen/global.48.wat @@ -1 +1 @@ -(import "" "" (global $foo i32))(import "" "" (global $foo i32)) \ No newline at end of file +(global $foo i32 (i32.const 0))(global $foo i32 (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/global.47.wat b/tests/gen/global.49.wat similarity index 100% rename from tests/gen/global.47.wat rename to tests/gen/global.49.wat diff --git a/tests/gen/global.50.wat b/tests/gen/global.50.wat new file mode 100644 index 0000000..7c7a305 --- /dev/null +++ b/tests/gen/global.50.wat @@ -0,0 +1 @@ +(import "" "" (global $foo i32))(import "" "" (global $foo i32)) \ No newline at end of file diff --git a/tests/gen/global.json b/tests/gen/global.json index 995dfe1..39bb06d 100644 --- a/tests/gen/global.json +++ b/tests/gen/global.json @@ -1,99 +1,107 @@ {"source_filename": "global.wast", "commands": [ {"type": "module", "line": 3, "filename": "global.0.wasm"}, - {"type": "assert_return", "line": 189, "action": {"type": "invoke", "field": "get-a", "args": []}, "expected": [{"type": "i32", "value": "4294967294"}]}, - {"type": "assert_return", "line": 190, "action": {"type": "invoke", "field": "get-b", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551611"}]}, - {"type": "assert_return", "line": 191, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "4294967284"}]}, - {"type": "assert_return", "line": 192, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551601"}]}, - {"type": "assert_return", "line": 193, "action": {"type": "invoke", "field": "get-z1", "args": []}, "expected": [{"type": "i32", "value": "666"}]}, - {"type": "assert_return", "line": 194, "action": {"type": "invoke", "field": "get-z2", "args": []}, "expected": [{"type": "i64", "value": "666"}]}, - {"type": "assert_return", "line": 196, "action": {"type": "invoke", "field": "get-3", "args": []}, "expected": [{"type": "f32", "value": "3225419776"}]}, - {"type": "assert_return", "line": 197, "action": {"type": "invoke", "field": "get-4", "args": []}, "expected": [{"type": "f64", "value": "13839561654909534208"}]}, - {"type": "assert_return", "line": 198, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "3243245568"}]}, - {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "13847442954257432576"}]}, - {"type": "assert_return", "line": 201, "action": {"type": "invoke", "field": "set-x", "args": [{"type": "i32", "value": "6"}]}, "expected": []}, - {"type": "assert_return", "line": 202, "action": {"type": "invoke", "field": "set-y", "args": [{"type": "i64", "value": "7"}]}, "expected": []}, - {"type": "assert_return", "line": 203, "action": {"type": "invoke", "field": "set-7", "args": [{"type": "f32", "value": "1090519040"}]}, "expected": []}, - {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "set-8", "args": [{"type": "f64", "value": "4621256167635550208"}]}, "expected": []}, - {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 207, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, - {"type": "assert_return", "line": 208, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "1090519040"}]}, - {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, - {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 212, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 213, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 215, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 216, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 217, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 219, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 220, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 221, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 223, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 224, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 226, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 227, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 229, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 230, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_trap", "line": 231, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 233, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 234, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 235, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 236, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 238, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 242, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 244, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "36"}]}, - {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_invalid", "line": 253, "filename": "global.1.wasm", "text": "global is immutable", "module_type": "binary"}, - {"type": "assert_invalid", "line": 258, "filename": "global.2.wasm", "text": "global is immutable", "module_type": "binary"}, - {"type": "module", "line": 263, "filename": "global.3.wasm"}, - {"type": "module", "line": 264, "filename": "global.4.wasm"}, - {"type": "assert_invalid", "line": 267, "filename": "global.5.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 272, "filename": "global.6.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 277, "filename": "global.7.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 282, "filename": "global.8.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 287, "filename": "global.9.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 292, "filename": "global.10.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 297, "filename": "global.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 302, "filename": "global.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 307, "filename": "global.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 312, "filename": "global.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 317, "filename": "global.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 322, "filename": "global.16.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 327, "filename": "global.17.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 332, "filename": "global.18.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 337, "filename": "global.19.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "module", "line": 341, "filename": "global.20.wasm"}, - {"type": "assert_malformed", "line": 345, "filename": "global.21.wasm", "text": "malformed mutability", "module_type": "binary"}, - {"type": "assert_malformed", "line": 358, "filename": "global.22.wasm", "text": "malformed mutability", "module_type": "binary"}, - {"type": "module", "line": 371, "filename": "global.23.wasm"}, - {"type": "assert_malformed", "line": 375, "filename": "global.24.wasm", "text": "malformed mutability", "module_type": "binary"}, - {"type": "assert_malformed", "line": 387, "filename": "global.25.wasm", "text": "malformed mutability", "module_type": "binary"}, - {"type": "assert_invalid", "line": 401, "filename": "global.26.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 406, "filename": "global.27.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 414, "filename": "global.28.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 422, "filename": "global.29.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 432, "filename": "global.30.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 437, "filename": "global.31.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 445, "filename": "global.32.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 453, "filename": "global.33.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 463, "filename": "global.34.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 472, "filename": "global.35.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 482, "filename": "global.36.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 492, "filename": "global.37.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 502, "filename": "global.38.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 512, "filename": "global.39.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 522, "filename": "global.40.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 532, "filename": "global.41.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 542, "filename": "global.42.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 551, "filename": "global.43.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 560, "filename": "global.44.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 570, "filename": "global.45.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_malformed", "line": 588, "filename": "global.46.wat", "text": "duplicate global", "module_type": "text"}, - {"type": "assert_malformed", "line": 592, "filename": "global.47.wat", "text": "duplicate global", "module_type": "text"}, - {"type": "assert_malformed", "line": 596, "filename": "global.48.wat", "text": "duplicate global", "module_type": "text"}]} + {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "get-a", "args": []}, "expected": [{"type": "i32", "value": "4294967294"}]}, + {"type": "assert_return", "line": 200, "action": {"type": "invoke", "field": "get-b", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551611"}]}, + {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "4294967284"}]}, + {"type": "assert_return", "line": 205, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551601"}]}, + {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "get-z1", "args": []}, "expected": [{"type": "i32", "value": "666"}]}, + {"type": "assert_return", "line": 207, "action": {"type": "invoke", "field": "get-z2", "args": []}, "expected": [{"type": "i64", "value": "666"}]}, + {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "get-3", "args": []}, "expected": [{"type": "f32", "value": "3225419776"}]}, + {"type": "assert_return", "line": 210, "action": {"type": "invoke", "field": "get-4", "args": []}, "expected": [{"type": "f64", "value": "13839561654909534208"}]}, + {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "3243245568"}]}, + {"type": "assert_return", "line": 212, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "13847442954257432576"}]}, + {"type": "assert_return", "line": 214, "action": {"type": "invoke", "field": "set-x", "args": [{"type": "i32", "value": "6"}]}, "expected": []}, + {"type": "assert_return", "line": 215, "action": {"type": "invoke", "field": "set-y", "args": [{"type": "i64", "value": "7"}]}, "expected": []}, + {"type": "assert_return", "line": 217, "action": {"type": "invoke", "field": "set-7", "args": [{"type": "f32", "value": "1090519040"}]}, "expected": []}, + {"type": "assert_return", "line": 218, "action": {"type": "invoke", "field": "set-8", "args": [{"type": "f64", "value": "4621256167635550208"}]}, "expected": []}, + {"type": "assert_return", "line": 220, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 221, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, + {"type": "assert_return", "line": 222, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "1090519040"}]}, + {"type": "assert_return", "line": 223, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, + {"type": "assert_return", "line": 225, "action": {"type": "invoke", "field": "set-7", "args": [{"type": "f32", "value": "1090519040"}]}, "expected": []}, + {"type": "assert_return", "line": 226, "action": {"type": "invoke", "field": "set-8", "args": [{"type": "f64", "value": "4621256167635550208"}]}, "expected": []}, + {"type": "assert_return", "line": 230, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 231, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, + {"type": "assert_return", "line": 232, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "1090519040"}]}, + {"type": "assert_return", "line": 233, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, + {"type": "assert_return", "line": 237, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 238, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 239, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 242, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 243, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 247, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 252, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_trap", "line": 257, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "undefined element", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "36"}]}, + {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_invalid", "line": 279, "filename": "global.1.wasm", "text": "global is immutable", "module_type": "binary"}, + {"type": "assert_invalid", "line": 284, "filename": "global.2.wasm", "text": "global is immutable", "module_type": "binary"}, + {"type": "module", "line": 289, "filename": "global.3.wasm"}, + {"type": "module", "line": 290, "filename": "global.4.wasm"}, + {"type": "assert_invalid", "line": 293, "filename": "global.5.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 298, "filename": "global.6.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 303, "filename": "global.7.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 308, "filename": "global.8.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 313, "filename": "global.9.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 318, "filename": "global.10.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 323, "filename": "global.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 328, "filename": "global.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 333, "filename": "global.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 344, "filename": "global.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 349, "filename": "global.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 354, "filename": "global.16.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 359, "filename": "global.17.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 363, "filename": "global.18.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 368, "filename": "global.19.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 373, "filename": "global.20.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 378, "filename": "global.21.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "module", "line": 382, "filename": "global.22.wasm"}, + {"type": "assert_malformed", "line": 386, "filename": "global.23.wasm", "text": "malformed mutability", "module_type": "binary"}, + {"type": "assert_malformed", "line": 399, "filename": "global.24.wasm", "text": "malformed mutability", "module_type": "binary"}, + {"type": "module", "line": 412, "filename": "global.25.wasm"}, + {"type": "assert_malformed", "line": 416, "filename": "global.26.wasm", "text": "malformed mutability", "module_type": "binary"}, + {"type": "assert_malformed", "line": 428, "filename": "global.27.wasm", "text": "malformed mutability", "module_type": "binary"}, + {"type": "assert_invalid", "line": 442, "filename": "global.28.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 447, "filename": "global.29.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 455, "filename": "global.30.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 463, "filename": "global.31.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 473, "filename": "global.32.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 478, "filename": "global.33.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 486, "filename": "global.34.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 494, "filename": "global.35.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 504, "filename": "global.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 513, "filename": "global.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 523, "filename": "global.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 533, "filename": "global.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 543, "filename": "global.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 553, "filename": "global.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 563, "filename": "global.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 573, "filename": "global.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 583, "filename": "global.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 592, "filename": "global.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 601, "filename": "global.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 611, "filename": "global.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 629, "filename": "global.48.wat", "text": "duplicate global", "module_type": "text"}, + {"type": "assert_malformed", "line": 633, "filename": "global.49.wat", "text": "duplicate global", "module_type": "text"}, + {"type": "assert_malformed", "line": 637, "filename": "global.50.wat", "text": "duplicate global", "module_type": "text"}]} diff --git a/tests/gen/loop.0.wasm b/tests/gen/loop.0.wasm index 3193a750f6470e62e97b4d03a5156849b81539f3..9248927a18ba751dd6be2a0fc2ba73025de4ec0e 100644 GIT binary patch delta 724 zcmZXSyHeaR6o!xR8ZUM*cS7!02!wcxJV7Y)0I3;yeY|KQOCDJpW-GTTVbY{e+Ei4$ z01uLa=io?oSTfAG@c-%8e~ylHo&HYG4hA0%89N{CoqySBzlZxFR<)f08#Y2srji?2 zSX9_pEFc&Zh&2pWc#}0Kacr|vn8rf5JSUYXU@@I*$;lA8EuzfES{1?ytzZ~;#Gasn zrCzis8-&>H&do9TyZFS#cfhATSnIUqxy0VHyn2^;Te?kX%%waQRMpJeUERF5;JRMh zYVUC$wC;~%wfR?U!=Kj!Z`gE!6;|5JMiZk?vu|8Z5w@JoHPGvaZVCqN)To~9I8qp0 zXSzniTUEfLgivmJ!{c>QQd7vNLEFP8b7&EJ_;iDu6RGq6tj}Blsd>>Ap#0}=wQ7^Aw7=ci>C6)6&J?+FrS`V_nsp2I2dqxYu!Rkbli`g77BoguxoQdogd54hW^t zz-~|C> aB=p0QpgoE%J_kP;+y3!)aCLDR{$V#pRpTlE delta 740 zcmZXS&2G~`5XWbexK6#Pn-3aNzM)WPVauHpc?5WYY8{W;RX4V^-n8n;uRxUxCnO}! zNT~0?jo08gn6*tTgzUr4Z~pVOJKw_J;in_-L@?I55r;P)_scKdv4_jtUIXhFDm`0i zX`tgRSK2D*ZlzdQjG@5h)TpFOJikK zmcn*W6MK#+ybT%)b%DTLbYxCRU#B0q^fjom?W{*^BEn%!t&B8^%CS2ow2)e#Dyn1J z21n};Z2E4z_n*58n^f)E%wSXSPBl*jD#70RE1Q;6M_qPtDfJ3r=7ut8S0-)9z9X^8 za*^d|WE#UgP9!po|NfXPol%aH0&N2yw9q0p@Zp4%XF7{oX-Op?xdJ+q@ut9IcMGdj zn(GaEG9nbIf7nwOXz3X@s%Nh3B3tH?#{S#xK@b^~7a}4E&v|Xs)4nLf+BBG>bn9@~ z_*I&sftLY2t`)WM%Eu(3>o4HQyE<1I;kcV*244Gam1x1>&9={A4x9~xUwzR5-iPjc zPCw^#V7yz-ea>fe9zy+bV)bd>znyhIGj@0VqxW+-gicB7@qi6rKH>cK()-T-0GmD8 A{Qv*} diff --git a/tests/gen/loop.1.wat b/tests/gen/loop.1.wat new file mode 100644 index 0000000..1693aa8 --- /dev/null +++ b/tests/gen/loop.1.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (type $sig) (result i32) (param i32))) \ No newline at end of file diff --git a/tests/gen/loop.10.wat b/tests/gen/loop.10.wat new file mode 100644 index 0000000..28b61ca --- /dev/null +++ b/tests/gen/loop.10.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (type $sig) (param i32) (drop)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/loop.11.wat b/tests/gen/loop.11.wat new file mode 100644 index 0000000..02e9471 --- /dev/null +++ b/tests/gen/loop.11.wat @@ -0,0 +1 @@ +(type $sig (func (param i32 i32) (result i32)))(func (i32.const 0) (loop (type $sig) (param i32) (result i32)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/loop.12.wasm b/tests/gen/loop.12.wasm index 7e67be18b0a9c06935211dcc7944cb170c96ee39..f1fddaa600ba7ed64e1d3cae028eb33070694a75 100644 GIT binary patch literal 29 kcmZQbEY4+QU|?WmVN76PU}j=u;NoOtXJB@4WZ>oo04);&WB>pF literal 35 ocmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD&S76;~fZYgeV06?k(SpWb4 diff --git a/tests/gen/loop.1.wasm b/tests/gen/loop.13.wasm similarity index 100% rename from tests/gen/loop.1.wasm rename to tests/gen/loop.13.wasm diff --git a/tests/gen/loop.2.wasm b/tests/gen/loop.14.wasm similarity index 100% rename from tests/gen/loop.2.wasm rename to tests/gen/loop.14.wasm diff --git a/tests/gen/loop.3.wasm b/tests/gen/loop.15.wasm similarity index 100% rename from tests/gen/loop.3.wasm rename to tests/gen/loop.15.wasm diff --git a/tests/gen/loop.4.wasm b/tests/gen/loop.16.wasm similarity index 100% rename from tests/gen/loop.4.wasm rename to tests/gen/loop.16.wasm diff --git a/tests/gen/loop.5.wasm b/tests/gen/loop.17.wasm similarity index 100% rename from tests/gen/loop.5.wasm rename to tests/gen/loop.17.wasm diff --git a/tests/gen/loop.18.wasm b/tests/gen/loop.18.wasm new file mode 100644 index 0000000000000000000000000000000000000000..70cf1ed73749c5eed3e986191849abd7c793dcf7 GIT binary patch literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWMFo1WOQWW<^}*V>H@3) literal 0 HcmV?d00001 diff --git a/tests/gen/loop.6.wasm b/tests/gen/loop.19.wasm similarity index 100% rename from tests/gen/loop.6.wasm rename to tests/gen/loop.19.wasm diff --git a/tests/gen/loop.2.wat b/tests/gen/loop.2.wat new file mode 100644 index 0000000..de60265 --- /dev/null +++ b/tests/gen/loop.2.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (param i32) (type $sig) (result i32))) \ No newline at end of file diff --git a/tests/gen/loop.20.wasm b/tests/gen/loop.20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d80c5285443ff024c586f4f84e09f16a8c391d5d GIT binary patch literal 29 kcmZQbEY4+QU|?WmV@zORs;_5eVr1ZAXJlnyX5i)q067){;Q#;t literal 0 HcmV?d00001 diff --git a/tests/gen/loop.7.wasm b/tests/gen/loop.21.wasm similarity index 100% rename from tests/gen/loop.7.wasm rename to tests/gen/loop.21.wasm diff --git a/tests/gen/loop.22.wasm b/tests/gen/loop.22.wasm new file mode 100644 index 0000000000000000000000000000000000000000..567252570623fec6033101f18006337ff1dd732f GIT binary patch literal 30 lcmZQbEY4+QU|?WmV@zORs;_5eVr1arU}R%pW?CoWZ>dvdtWM^Pzl#=4+1^`Vw1A71f literal 0 HcmV?d00001 diff --git a/tests/gen/loop.33.wasm b/tests/gen/loop.33.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a3aabb97a8334c9a096e8da580b37e087fa3afa3 GIT binary patch literal 37 rcmZQbEY4+QU|?Y6U`k+MNMNjIU}j=u;NoTEW^e`yGcYqsadQIzPn-iT literal 0 HcmV?d00001 diff --git a/tests/gen/loop.34.wasm b/tests/gen/loop.34.wasm new file mode 100644 index 0000000000000000000000000000000000000000..71cfb90bacc38672e7704eb88760e3d6e069d01a GIT binary patch literal 39 tcmZQbEY4+QU|?Y6WJ+LQNMNe1XJBSxWZ>dsdq zUUX*H>%diWll{N>=bzb)0%@^C0KiXMlb|fIoB&M1(w@S{#}XeW;lo3T50mizzQp?p zvIk2DKb&F^MvbQZwA>f8?4eSYMGagdVk1PrW|O*;wrKr{M(si>IWyzz%V)q^oPUMD ziv?A}T2LkGr^UExTV%R0(CBW+GMhuQx6vvkLyHY6&(~wuuqC`^`*z1GYi@IXwiwUy z)jTsy9#9Yf2bSfcLA)(8Yrurw@U2=~nIbg&3J5HN)s$}Jfo|5b4^#z*HWjeIlSS^ zPjyv4*d?WM$~Y^eso-D(jg%F9yGPC|l~12p-*LXm(|Mi$p09VaO7&fh4(%&s&)AR~ zjVw&~27~(J( z{O8o8t^|iLNP;9B2$F#ZUWOGIh#10>ePoXz24O+WEe?55BjEzM8eMS14h@TZMk9$V z0Va(qg);*0NTRNtVu72&VE2h5=+WP{M$Y3i2&00wrdPxk$N%I*jD-CfG=2KI89vgLqj z5BadfQm{{Z%(5M~RAS{yN&i%{2jHWs&jx7hxNOcCb8Q9;ds61tc=^FSsl`HyQPK}T zo&hVw`6sY)F~N#m2&^~_)03!R-k0F6X$2+E)E6@)g3+}YLwWa4)K?;2$fW-PD*vpV zLA4dcy{xr2300gxt+680a16Y;(lS6poeVOH=BA;+b4~VUJy+V?qWo~u8%48mn1s;` zyjn(*YcYei5kkfSHfYjN_0gVPWs@dlK!554Y-Sj9~cXl zq?f!&PKFu2<=Y*SRt|D$8_?k%*eUtY?tuqf1CLrVl!F5CERd?s1vRvBn3HF?zM}~c zaZL(kSh>S@8hVNb*%SgBj~rH$!3t%b3^}+FzWKWR&Ix04whTGynhq literal 30 lcmZQbEY4+QU|?WmVN76PU}j=u;NoKBU|?i)WR#ZT1^_N#0#E<| diff --git a/tests/gen/select.10.wasm b/tests/gen/select.10.wasm index 89bca8feccbaef150530d54af09c8530109b0250..6ebc08346005ea4ac94ef8fad24569d893988cca 100644 GIT binary patch literal 26 hcmZQbEY4+QU|?WmVN76PU}j=u;9_HBVUU*M1^^|h0t5g6 literal 35 ocmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpHF*a&QEa(o)>q06*0OCIA2c diff --git a/tests/gen/select.11.wasm b/tests/gen/select.11.wasm index 8a824326caca83cdfd0a7f1df7fa165f5c0a8abd..2f5aceefaa66ea6cb4ff6ffde6177e3b2ffa1385 100644 GIT binary patch literal 28 jcmZQbEY4+QU|?WmVN76PU}j=u;NoCpV{l}Umf{8gDwhID literal 35 mcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD&TW(R30Zf*cS*8?X2 diff --git a/tests/gen/select.12.wasm b/tests/gen/select.12.wasm index 43b8e1bd65f2f5903d16a2c138eef693cd51a98d..200ef4e5d23a82deee32e0b749001426dd502901 100644 GIT binary patch literal 30 jcmZQbEY4+QU|?WmVN76PU}j=u;NoKBU~mLNX(?_1Fct!i literal 35 ocmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD&SW(P+GX(?`Q06*IUCjbBd diff --git a/tests/gen/select.13.wasm b/tests/gen/select.13.wasm index 17d0903e1e4053a4cf97b068fe46eb17d3d4d0e2..cf678bb30d99f0ac5914e15e8d46a828c2a04abc 100644 GIT binary patch delta 15 WcmY#Zo*>EP$l%DpD^?BK}Y$RI7n%?$t(w*m?P diff --git a/tests/gen/select.14.wasm b/tests/gen/select.14.wasm index c9ace6d3615c8bbfc200c233a3693d4afe04e8bd..388b8568248d1a977b45648567443880c5afd163 100644 GIT binary patch delta 13 UcmY#Zo*>P^QP$iU(tEyc|Z01r6<$^ZZW diff --git a/tests/gen/select.15.wasm b/tests/gen/select.15.wasm index 25aa097d3448246496551209f1bff4d456ae8cad..89bca8feccbaef150530d54af09c8530109b0250 100644 GIT binary patch delta 15 WcmY#Zo*>D^EP$iU*@$RI7n%?$t(y8;UU diff --git a/tests/gen/select.16.wasm b/tests/gen/select.16.wasm index cc81f10dba8ec5c3074dd81a675ddf3cef21978d..8a824326caca83cdfd0a7f1df7fa165f5c0a8abd 100644 GIT binary patch delta 15 WcmY#Zo*>EP$l%Dp>>w@0%?$t(uL24H delta 15 WcmY#Zo*>D^;^4^O$RI7n%?$t(!2$~a diff --git a/tests/gen/select.17.wasm b/tests/gen/select.17.wasm index 2b4bd14158aee511d980c1c6f12efe7002a90cea..43b8e1bd65f2f5903d16a2c138eef693cd51a98d 100644 GIT binary patch literal 35 ocmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD&SW(P+GX(?`Q06*IUCjbBd literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAVsK=1WOQPbmf{8gHa-H^ diff --git a/tests/gen/select.18.wasm b/tests/gen/select.18.wasm index a6712116a011082202507d036fd2ad6281f78e4a..17d0903e1e4053a4cf97b068fe46eb17d3d4d0e2 100644 GIT binary patch delta 16 XcmY#Zo*==^!0h12;K(2?#mx->6tDsc delta 16 XcmY#Zo*==^=*Z~Iz|deXEyWE07OMh( diff --git a/tests/gen/select.19.wasm b/tests/gen/select.19.wasm index 82e334b636e3db6e4e8be0825bc0142df3197c5a..c9ace6d3615c8bbfc200c233a3693d4afe04e8bd 100644 GIT binary patch literal 35 mcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD&T76)l5Zf*cS-2*59 literal 39 rcmZQbEY4+QU|?WmVN76PU}j=u;1XsOWN>73WOM-v1HlJ-X(?_1Pa*^r diff --git a/tests/gen/select.20.wasm b/tests/gen/select.20.wasm index 4b43c9d145dc233dc32c80de2e2e2ce0e4b8fc01..25aa097d3448246496551209f1bff4d456ae8cad 100644 GIT binary patch literal 35 ocmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD&S76(TLX(?`Q06*gcC;$Ke literal 32 ncmZQbEY4+QU|?WmWlUgTtY>CoWZ>dvq06*yiC;$Ke literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;NoTEW?*n+bYgU5l$PQK05~cF*#H0l diff --git a/tests/gen/select.22.wasm b/tests/gen/select.22.wasm index 0cf52ed5b09f924cac049e43a812f63c6e35499b..2b4bd14158aee511d980c1c6f12efe7002a90cea 100644 GIT binary patch literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAVsK=1WOQPbmf{8gHa-H^ literal 33 mcmZQbEY4+QU|?WmVN76PU}j=u;NoTEW?*n)bOb_aDQ*BbECSg8 diff --git a/tests/gen/select.23.wasm b/tests/gen/select.23.wasm index 6d5c25261e53330bbbde87bd02e000eae10b8844..a6712116a011082202507d036fd2ad6281f78e4a 100644 GIT binary patch literal 35 qcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpHG4WOQa=Xt0--;syXg+5?;b literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;NoTEW?*n+bYyg5l$PQK05~WD*#H0l diff --git a/tests/gen/select.24.wasm b/tests/gen/select.24.wasm index 9036db1cfdc77b0e6abda20bac13131799b0fe9c..82e334b636e3db6e4e8be0825bc0142df3197c5a 100644 GIT binary patch literal 39 rcmZQbEY4+QU|?WmVN76PU}j=u;1XsOWN>73WOM-v1HlJ-X(?_1Pa*^r literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWMFV)bYhg2;syXR2Lh7- diff --git a/tests/gen/select.25.wasm b/tests/gen/select.25.wasm index 88b4d57b5e1c62fba87ac79405d14ba6f996e704..4b43c9d145dc233dc32c80de2e2e2ce0e4b8fc01 100644 GIT binary patch literal 32 ncmZQbEY4+QU|?WmWlUgTtY>CoWZ>dvCoWZ>dr730SW@a2YW|GX(?_1PqqXV literal 35 ocmZQbEY4+QU|?WmVN76PU}j=u;NoZGWpD&SCI?3bX(?`Q06)_MCIA2c diff --git a/tests/gen/select.json b/tests/gen/select.json index c797a9f..8cdf139 100644 --- a/tests/gen/select.json +++ b/tests/gen/select.json @@ -1,124 +1,113 @@ {"source_filename": "select.wast", "commands": [ {"type": "module", "line": 1, "filename": "select.0.wasm"}, - {"type": "assert_return", "line": 189, "action": {"type": "invoke", "field": "select_i32", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "2"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 190, "action": {"type": "invoke", "field": "select_i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 191, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1073741824"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 192, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4611686018427387904"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 194, "action": {"type": "invoke", "field": "select_i32", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "2"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 195, "action": {"type": "invoke", "field": "select_i32", "args": [{"type": "i32", "value": "2"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 196, "action": {"type": "invoke", "field": "select_i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 197, "action": {"type": "invoke", "field": "select_i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "4042322160"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 200, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "2139226884"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "2139226884"}]}, - {"type": "assert_return", "line": 201, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 202, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "2139226884"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 203, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2139226884"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 205, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2139226884"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2139226884"}]}, - {"type": "assert_return", "line": 208, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "9218868437227537156"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "9218868437227537156"}]}, - {"type": "assert_return", "line": 210, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "9218868437227537156"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 212, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 213, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9218868437227537156"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 214, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 215, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9218868437227537156"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "9218868437227537156"}]}, - {"type": "assert_trap", "line": 217, "action": {"type": "invoke", "field": "select_trap_l", "args": [{"type": "i32", "value": "1"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 218, "action": {"type": "invoke", "field": "select_trap_l", "args": [{"type": "i32", "value": "0"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 219, "action": {"type": "invoke", "field": "select_trap_r", "args": [{"type": "i32", "value": "1"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 220, "action": {"type": "invoke", "field": "select_trap_r", "args": [{"type": "i32", "value": "0"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 222, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 223, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 224, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 225, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 226, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 227, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 229, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 230, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 231, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 232, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 233, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 234, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 236, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 237, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 238, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 239, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 243, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 244, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 251, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 254, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_trap", "line": 257, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": [{"type": "i32", "value": "0"}]}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 258, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": [{"type": "i32", "value": "1"}]}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 279, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 282, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "as-compare-left", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "as-compare-left", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "as-compare-right", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "as-compare-right", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "as-convert-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "as-convert-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_invalid", "line": 299, "filename": "select.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 306, "filename": "select.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 310, "filename": "select.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 314, "filename": "select.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 320, "filename": "select.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 328, "filename": "select.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 336, "filename": "select.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 344, "filename": "select.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 353, "filename": "select.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 362, "filename": "select.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 371, "filename": "select.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 380, "filename": "select.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 389, "filename": "select.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 398, "filename": "select.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 407, "filename": "select.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 416, "filename": "select.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 428, "filename": "select.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 432, "filename": "select.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 436, "filename": "select.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 443, "filename": "select.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 451, "filename": "select.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 456, "filename": "select.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 462, "filename": "select.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 467, "filename": "select.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 472, "filename": "select.25.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 478, "filename": "select.26.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 484, "filename": "select.27.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_return", "line": 185, "action": {"type": "invoke", "field": "select-i32", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "2"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 186, "action": {"type": "invoke", "field": "select-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 187, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1073741824"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 188, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4611686018427387904"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 190, "action": {"type": "invoke", "field": "select-i32", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "2"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 191, "action": {"type": "invoke", "field": "select-i32", "args": [{"type": "i32", "value": "2"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 192, "action": {"type": "invoke", "field": "select-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 193, "action": {"type": "invoke", "field": "select-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "4042322160"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 195, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 196, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "2139226884"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "2139226884"}]}, + {"type": "assert_return", "line": 197, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 198, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "2139226884"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 200, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2139226884"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 201, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 202, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2139226884"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2139226884"}]}, + {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 205, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "9218868437227537156"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "9218868437227537156"}]}, + {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 207, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "9218868437227537156"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 208, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9218868437227537156"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 210, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9218868437227537156"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "9218868437227537156"}]}, + {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 247, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 251, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 254, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 257, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 300, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 302, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 312, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "as-compare-left", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "as-compare-left", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "as-compare-right", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "as-compare-right", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "as-convert-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "as-convert-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_invalid", "line": 324, "filename": "select.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 352, "filename": "select.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 358, "filename": "select.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 364, "filename": "select.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 371, "filename": "select.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 375, "filename": "select.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 379, "filename": "select.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 383, "filename": "select.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 387, "filename": "select.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 393, "filename": "select.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 401, "filename": "select.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 409, "filename": "select.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 417, "filename": "select.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 426, "filename": "select.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 435, "filename": "select.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 444, "filename": "select.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 453, "filename": "select.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 462, "filename": "select.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 471, "filename": "select.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 480, "filename": "select.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 489, "filename": "select.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 501, "filename": "select.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 505, "filename": "select.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 509, "filename": "select.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 516, "filename": "select.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "module", "line": 523, "filename": "select.26.wasm"}]} diff --git a/tests/gen/type.3.wasm b/tests/gen/type.3.wasm deleted file mode 100644 index aee2178f6e4f49c14d66a3007d516d5ad4ef8652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 XcmZQbEY4+QU|?WmV@zORs;>tC6*&T{ diff --git a/tests/gen/type.4.wasm b/tests/gen/type.4.wasm deleted file mode 100644 index aee2178f6e4f49c14d66a3007d516d5ad4ef8652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 XcmZQbEY4+QU|?WmV@zORs;>tC6*&T{ diff --git a/tests/gen/type.json b/tests/gen/type.json index 5c0fa8a..e0d905e 100644 --- a/tests/gen/type.json +++ b/tests/gen/type.json @@ -1,7 +1,5 @@ {"source_filename": "type.wast", "commands": [ {"type": "module", "line": 3, "filename": "type.0.wasm"}, - {"type": "assert_malformed", "line": 44, "filename": "type.1.wat", "text": "result before parameter", "module_type": "text"}, - {"type": "assert_malformed", "line": 48, "filename": "type.2.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_invalid", "line": 53, "filename": "type.3.wasm", "text": "invalid result arity", "module_type": "binary"}, - {"type": "assert_invalid", "line": 57, "filename": "type.4.wasm", "text": "invalid result arity", "module_type": "binary"}]} + {"type": "assert_malformed", "line": 48, "filename": "type.1.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 52, "filename": "type.2.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/unreachable.0.wasm b/tests/gen/unreachable.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..19ca27e93bfe3da7a88bb79f87409c18ea28b9ff GIT binary patch literal 1744 zcmZWq?Q+vb6urBWY{%=5gwK}H)}iSatpWrJC50J_wtsm7W{7OBgNtl=B!xB|f?k04 z=o9dMoO^d|!$hO?-h1vjcUNaMGNt8Q5s?}+kAu3d>6mb<8siTGG_+5JP( zK79Cq0vAq!hCT!ub<;AQo-W4mbXJrVHOwlX&nDFDtgn38(>uAuPyahk>&Z)H|+CvB869jOyYda3D(oqHv7Zdw0UH=So>My+7@mzyL`ttgx zYKOWWH+C;p(#6EDu-iwqu+?d?@Y}!H2C~}wS3ap;*#&*=6PuNmzPaRRT!|NXEZ~5< zl{T~E%KNyty+KMVe%xX|JV}6W*|2e%WnQz-c1q6Pf5+ZSCfn4P?;=piGOEvvQY5hLS#zD%(vQT@i9SBR56W*cy1Z)~wq9J>dZ?JfQSG9RloQoqxJAKA6l_F+7xh797-R)9*jSe7v*>9VAO zf@B7ZQ%@7G!=1pBjG3G}1Rq3n?jeV=hmSFrd5850uqjUfu_grbDmG(bYpU>y%s zghkqn56J*;5#oW`MKC}pL4pm?E}VchNwBRD0a!jz=1@R*Z@We-82=Wv@<9Xk+ENTCZ f=~H(xcEP>IVAHDDe8zI literal 0 HcmV?d00001 diff --git a/tests/gen/unreachable.json b/tests/gen/unreachable.json new file mode 100644 index 0000000..6fe55b6 --- /dev/null +++ b/tests/gen/unreachable.json @@ -0,0 +1,66 @@ +{"source_filename": "unreachable.wast", + "commands": [ + {"type": "module", "line": 3, "filename": "unreachable.0.wasm"}, + {"type": "assert_trap", "line": 221, "action": {"type": "invoke", "field": "type-i32", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 222, "action": {"type": "invoke", "field": "type-i64", "args": []}, "text": "unreachable", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 223, "action": {"type": "invoke", "field": "type-f32", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 224, "action": {"type": "invoke", "field": "type-f64", "args": []}, "text": "unreachable", "expected": [{"type": "f64"}]}, + {"type": "assert_trap", "line": 226, "action": {"type": "invoke", "field": "as-func-first", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 227, "action": {"type": "invoke", "field": "as-func-mid", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 228, "action": {"type": "invoke", "field": "as-func-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 229, "action": {"type": "invoke", "field": "as-func-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 231, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 232, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 233, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 234, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 235, "action": {"type": "invoke", "field": "as-block-broke", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_trap", "line": 237, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 238, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 239, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "as-loop-broke", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_trap", "line": 242, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 244, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 245, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 246, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 248, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 249, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 250, "action": {"type": "invoke", "field": "as-br_table-value-2", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 251, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 252, "action": {"type": "invoke", "field": "as-br_table-value-and-index", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 254, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "text": "unreachable", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 256, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 257, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_trap", "line": 259, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_trap", "line": 261, "action": {"type": "invoke", "field": "as-if-then-no-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-if-then-no-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_trap", "line": 264, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 265, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 266, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 267, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 268, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 270, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 271, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 272, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 274, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 275, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 276, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 277, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 279, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 280, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 281, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 283, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 284, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "text": "unreachable", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 286, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 287, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 288, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 289, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 291, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 293, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 294, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "text": "unreachable", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 296, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 298, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 299, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 301, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 303, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}]} diff --git a/tests/gen/unreached-invalid.0.wasm b/tests/gen/unreached-invalid.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2e4c50519c1f33ea4d72fd68f510ec6b26bab5f5 GIT binary patch literal 28 jcmZQbEY4+QU|?WmVN76PU}j=u;NoCpV_;BVkm3daDS-kF literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.1.wasm b/tests/gen/unreached-invalid.1.wasm new file mode 100644 index 0000000000000000000000000000000000000000..41276fd4b6aef4699bb9e55c01b3def838c729dc GIT binary patch literal 28 jcmZQbEY4+QU|?WmVN76PU}j=u;NoCpV_;Bbkm3daDUAXU literal 0 HcmV?d00001 diff --git a/tests/gen/select.27.wasm b/tests/gen/unreached-invalid.10.wasm similarity index 100% rename from tests/gen/select.27.wasm rename to tests/gen/unreached-invalid.10.wasm diff --git a/tests/gen/unreached-invalid.100.wasm b/tests/gen/unreached-invalid.100.wasm new file mode 100644 index 0000000000000000000000000000000000000000..50d68639e191692fb40b9e7492e86a53a28954cc GIT binary patch literal 36 rcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dwCoWZ)8J6l7p>aAan3aAI_1;OFLcCoWZ>dvCoWZ>duCoWZ>drCoWZ>dvCoWZ)8H2XL4Y0WZ-4wc4Xk@1^`ts1J3{e literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.109.wasm b/tests/gen/unreached-invalid.109.wasm new file mode 100644 index 0000000000000000000000000000000000000000..15912bbd571818188bf28f8c6bb08f6fd0b85d46 GIT binary patch literal 29 kcmZQbEY4+QU|?WmWlUgTtYcdpWMg39WmwA%05ggM4FCWD literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.11.wasm b/tests/gen/unreached-invalid.11.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0dbc2a053c633eb480381fde2f6111b9b30221bb GIT binary patch literal 28 jcmZQbEY4+QU|?WmVN76PU}j=u;NoCpV_CoWZ>dr13&-( literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.16.wasm b/tests/gen/unreached-invalid.16.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a1b02de18a1455ba70202018c33e4f6722e43d3b GIT binary patch literal 38 scmZQbEY4+QU|?WmVN76PU}j=u;1XgKU|@3KVQ^%021+nQOL21p07pLqIsgCw literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.17.wasm b/tests/gen/unreached-invalid.17.wasm new file mode 100644 index 0000000000000000000000000000000000000000..effd7692e38f8c4eca92b06b34521c28a797e651 GIT binary patch literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWMFdOVQ^&R<^}*UoC0(J literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.18.wasm b/tests/gen/unreached-invalid.18.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3427ea701c81305863f350570dc7eeeca65b79a2 GIT binary patch literal 37 rcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8DlnD literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.19.wasm b/tests/gen/unreached-invalid.19.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7870c32108d467332db5d899d1bca3d6d03e001a GIT binary patch literal 34 pcmZQbEY4+QU|?WmVN76PU}j=u;NoNCVPJA#cHm)jWaQ@N1^_y+0?7aX literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.2.wasm b/tests/gen/unreached-invalid.2.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0dd11578856ab0933229d1058dcfbae451830880 GIT binary patch literal 27 icmZQbEY4+QU|?WmVN76PU}j=u;9_TFWnd6sCoWZ)8DWaB~9yP@)5a literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.21.wasm b/tests/gen/unreached-invalid.21.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f1925bf62aa6834a12ab7cbb8af9bb5b9f65fbcc GIT binary patch literal 28 jcmZQbEY4+QU|?WmVN76PU}j=u;NoCpW8h(MWaI__Db4~R literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.22.wasm b/tests/gen/unreached-invalid.22.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7303c5a3002c82acffb28a5feaf0390f79ea8c6e GIT binary patch literal 34 ocmZQbEY4+QU|?WmWlUgTtY>CoWZ>duH?Jj literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.24.wasm b/tests/gen/unreached-invalid.24.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ba57794c1fd46ea61b9de849a9b1a79b509dfdb0 GIT binary patch literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAV&HdXU}&&+mEr~fH){h+ literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.25.wasm b/tests/gen/unreached-invalid.25.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0bddd27641b0f9f6c726225bb731cacaca2c1c82 GIT binary patch literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAV&G?TaAb^@;^qbbHU9$c literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.26.wasm b/tests/gen/unreached-invalid.26.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8bfdb428247c495a3754946bd712b78f2a3beeea GIT binary patch literal 34 ocmZQbEY4+QU|?WmVN76PU}j=u;NoNCVc>UUbOwqtL`!i406Mw?=l}o! literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.27.wasm b/tests/gen/unreached-invalid.27.wasm new file mode 100644 index 0000000000000000000000000000000000000000..20baa4f59d40be7cd057803b3bee619290597a94 GIT binary patch literal 30 lcmZQbEY4+QU|?WmVN76PU}j=u;NoKBU|@3KcVy(|1^_R60(AfY literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.28.wasm b/tests/gen/unreached-invalid.28.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9e7048ce85434a95bdc087a216a665e19244d1f4 GIT binary patch literal 38 scmZQbEY4+QU|?WmWlUgTtY>CoWZ)8H2cVu*A;CBW}F>rGO09IiG#{d8T literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.29.wasm b/tests/gen/unreached-invalid.29.wasm new file mode 100644 index 0000000000000000000000000000000000000000..90742d01346946c70250c67aa5051831e5b7b37f GIT binary patch literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;NoTEW?*t)cHnnpCoWZ>dwCoWZ>dqCUAegdFZ%+j literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.36.wasm b/tests/gen/unreached-invalid.36.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2b84fa9dffff4e35c6a144f4b6f9aa2f65644153 GIT binary patch literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAVqkD)U}&&+mEr~fHsk|5 literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.37.wasm b/tests/gen/unreached-invalid.37.wasm new file mode 100644 index 0000000000000000000000000000000000000000..48caa1ece31823de585a8d6030f521e90b6bfe79 GIT binary patch literal 32 ncmZQbEY4+QU|?WmVN76PU}j=u;NoHAVqjo$aAb^@;^qbbHFyHw literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.38.wasm b/tests/gen/unreached-invalid.38.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a837d09a178a48ea58ab1ba687e4a3f19ec00514 GIT binary patch literal 34 ocmZQbEY4+QU|?WmVN76PU}j=u;NoNCVPJ4%bOwqtL`!i406G-{*#H0l literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.39.wasm b/tests/gen/unreached-invalid.39.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e7006226422bef165e43aa4f5abe050d8a4e1e69 GIT binary patch literal 30 lcmZQbEY4+QU|?WmVN76PU}j=u;NoKBU|@1!aAf4>1^_QG0%iaJ literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.4.wasm b/tests/gen/unreached-invalid.4.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2ff168c786a7e1b22f5058ae10da05af0c241d54 GIT binary patch literal 29 kcmZQbEY4+QU|?WmVN76PU}j=u;NoOtXJBw-2$13i04)##fB*mh literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.40.wasm b/tests/gen/unreached-invalid.40.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ddb290b452e4dd4bd2f8c0435921aa69e48ca156 GIT binary patch literal 36 qcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dwCoWZ>duCoWZ>drV!Z literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.46.wasm b/tests/gen/unreached-invalid.46.wasm new file mode 100644 index 0000000000000000000000000000000000000000..22c62e533793aed13187cefaaea2e1dfcebb39d6 GIT binary patch literal 35 qcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWnge*U~yn%WptI|<^}*fr~=mj literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.47.wasm b/tests/gen/unreached-invalid.47.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f9fbe6db1073622826666ae734c5249bec5736bf GIT binary patch literal 34 pcmZQbEY4+QU|?WmVN76PU}j=u;NoNCVQ^$%abRF&bd}=f1^_y*0@MHi literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.48.wasm b/tests/gen/unreached-invalid.48.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3b9d66ec20f0d96cd06be574e8349e3544a86b6f GIT binary patch literal 34 pcmZQbEY4+QU|?WmVN76PU}j=u;NoNCVPJA#;AV1Qbd}=f1^_x90@(ln literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.49.wasm b/tests/gen/unreached-invalid.49.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8a0ecaaabec62d3627f3d66373b05cd4e4a51341 GIT binary patch literal 35 qcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWngk(;C5zUXs~yc;syXe=>v}d literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.5.wasm b/tests/gen/unreached-invalid.5.wasm new file mode 100644 index 0000000000000000000000000000000000000000..21be0b48a2dc69031e5c5d95bfb4442c7cdf2f61 GIT binary patch literal 31 mcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dr;L<^}*heFHK8 literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.51.wasm b/tests/gen/unreached-invalid.51.wasm new file mode 100644 index 0000000000000000000000000000000000000000..372486e3a6401602cb9fd520c74c123470f4d325 GIT binary patch literal 37 rcmZQbEY4+QU|?WmVN76PU}j=u;1XoyXJB$*;C5tm21+nQOK}4LL(Bs# literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.52.wasm b/tests/gen/unreached-invalid.52.wasm new file mode 100644 index 0000000000000000000000000000000000000000..50bcc612b88045d8d72f13ce7419e19afc62074b GIT binary patch literal 33 ocmZQbEY4+QU|?WmVN76PU}j=u;NoTEW?*t)a$w+gWaQ=s05`7!xc~qF literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.53.wasm b/tests/gen/unreached-invalid.53.wasm new file mode 100644 index 0000000000000000000000000000000000000000..df2ff29dccaf122f714cd8300d13a0a1b65fd2cb GIT binary patch literal 39 tcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8F6kuSgcVuL8VBmHJ$}w=H>CoWZ)8D1^_Pv0%iaJ literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.57.wasm b/tests/gen/unreached-invalid.57.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6d3dfca981b7e77604935a3c69ff1f12736f2b13 GIT binary patch literal 34 ocmZQbEY4+QU|?WmWlUgTtY>CoWZ>duRVU}&&+mEr~fLb3y% literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.6.wasm b/tests/gen/unreached-invalid.6.wasm new file mode 100644 index 0000000000000000000000000000000000000000..41b9e532663892d926c4e7a8a73972a0a7bb028a GIT binary patch literal 36 ocmZQbEY4+QU|?WmWlUgTtY>CoWZ>dwRTbOy>WL`!i407kb1I{*Lx literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.62.wasm b/tests/gen/unreached-invalid.62.wasm new file mode 100644 index 0000000000000000000000000000000000000000..79bc24ce924e923ffee061632a7ff0d73b33f159 GIT binary patch literal 34 pcmZQbEY4+QU|?WmVN76PU}j=u;NoNCVPJA#cHm*)c4Xw{1^_yK0>}UW literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.63.wasm b/tests/gen/unreached-invalid.63.wasm new file mode 100644 index 0000000000000000000000000000000000000000..cdcd37f8303b5b450197cd228a62f629efbb2a0e GIT binary patch literal 40 ucmZQbEY4+QU|?WmWlUgTtY>CoWZ)8J6l7qkcVuLC;9=l)21+t;a{~Zfn*-GV literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.64.wasm b/tests/gen/unreached-invalid.64.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a0726c92de6daf0093505b486a599b207cd38b72 GIT binary patch literal 37 qcmZQbEY4+QU|?WmVN76PU}j=u;1XoyXJB$*20|VNZbwFLZf*cX#{(Py literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.65.wasm b/tests/gen/unreached-invalid.65.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a9c1937d695fe139d6bc35e95ac9644cbf3354b1 GIT binary patch literal 38 scmZQbEY4+QU|?WmWlUgTtY>CoWZ)8H6XLjIW;C2Q|F>rGO08|PCkN^Mx literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.66.wasm b/tests/gen/unreached-invalid.66.wasm new file mode 100644 index 0000000000000000000000000000000000000000..fe85d7f74c503ca184dba87613c4a78cee402f06 GIT binary patch literal 31 mcmZQbEY4+QU|?WmVN76PU}j=u;NoWFWMFpSVc>RTCoWZ>ds6)ad2eh<^}*VCoWZ>dsCoWZ)8HCoWZ)8HCoWZ)8HCoWZ)8G6k%YhcVy&YZ~@8y!3TRD25xQuZ7&4L literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.8.wasm b/tests/gen/unreached-invalid.8.wasm new file mode 100644 index 0000000000000000000000000000000000000000..aca7f1a05214ba413a2dff0058cbbc5f11306a08 GIT binary patch literal 26 hcmZQbEY4+QU|?WmVN76PU}j=u;9_HBVPJ6O1^^|m0u%rM literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.80.wasm b/tests/gen/unreached-invalid.80.wasm new file mode 100644 index 0000000000000000000000000000000000000000..04529a0c8dff7991a522ddd8b36aefd25be8f965 GIT binary patch literal 35 pcmZQbEY4+QU|?WmVN76PU}j=u;NoZGWngk(a0ZGp@G@|70{}ae0)7Ah literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.81.wasm b/tests/gen/unreached-invalid.81.wasm new file mode 100644 index 0000000000000000000000000000000000000000..08469eb7a05e8b6cf8ad6994b938dbeefb0907c0 GIT binary patch literal 38 rcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8H2XL4Y01VUa$ZfRlx(# literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.82.wasm b/tests/gen/unreached-invalid.82.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2bcbd1e432ee206474b1d2fe2f401cd102adbdbc GIT binary patch literal 41 ucmZQbEY4+QU|?WmWlUgTtY>CoWZ)8E6k=eiXR2jz1VUa$ZYf6wZf*c(Km=_7 literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.83.wasm b/tests/gen/unreached-invalid.83.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c7afb6233543114ff171d966cfa4c4d5bb15645d GIT binary patch literal 37 pcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8DCoWZ)8F6kuSgXK)4zGdMExF)(m*0{~X41BUCoWZ>dvCoWZ>duCoWZ)8HUVdUoK1^_!D0?GgY literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.92.wasm b/tests/gen/unreached-invalid.92.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1a65664a4e29c7e0f9a9841b5df82a290f1e2998 GIT binary patch literal 35 qcmZQbEY4+QU|?WmWlUgTtY>CoWZ>dsCoWZ)8DV!Z literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.94.wasm b/tests/gen/unreached-invalid.94.wasm new file mode 100644 index 0000000000000000000000000000000000000000..647973f6c0aebcbf0403277009f61f6ba2704fc4 GIT binary patch literal 37 qcmZQbEY4+QU|?WmVN76PU}j=u;1XoyXJB$*a&Tm3a^PX&1_A&@Wdj}n literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.95.wasm b/tests/gen/unreached-invalid.95.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8c79e9ea9781347821d35eb7890847d9e6355b8d GIT binary patch literal 38 rcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8H2XL4Y2aAe?N;syc$Rz?Hc literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.96.wasm b/tests/gen/unreached-invalid.96.wasm new file mode 100644 index 0000000000000000000000000000000000000000..4c4744997ee145faee560893054ab9d661075cb4 GIT binary patch literal 40 tcmZQbEY4+QU|?WmWlUgTtY>CoWZ)8J6l7qkXR32zU~+I|;9=qh0svzS1YZCE literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.97.wasm b/tests/gen/unreached-invalid.97.wasm new file mode 100644 index 0000000000000000000000000000000000000000..608ea7c4b4fbebe30e24d51875ef2860a7455c0f GIT binary patch literal 39 ucmZQbEY4+QU|?WmWlUgTtY>CoWZ)8F6kuR-aAan3aAM?PU=jP@H061p?$^ZZW literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.99.wasm b/tests/gen/unreached-invalid.99.wasm new file mode 100644 index 0000000000000000000000000000000000000000..36b8b97dad8ed6c1cdd1e38eb423811a715ca380 GIT binary patch literal 34 pcmZQbEY4+QU|?WmWlUgTtY>CoWZ>du literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-invalid.json b/tests/gen/unreached-invalid.json new file mode 100644 index 0000000..f47b144 --- /dev/null +++ b/tests/gen/unreached-invalid.json @@ -0,0 +1,119 @@ +{"source_filename": "unreached-invalid.wast", + "commands": [ + {"type": "assert_invalid", "line": 4, "filename": "unreached-invalid.0.wasm", "text": "unknown local", "module_type": "binary"}, + {"type": "assert_invalid", "line": 8, "filename": "unreached-invalid.1.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 12, "filename": "unreached-invalid.2.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 16, "filename": "unreached-invalid.3.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 21, "filename": "unreached-invalid.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 27, "filename": "unreached-invalid.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 33, "filename": "unreached-invalid.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 42, "filename": "unreached-invalid.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 46, "filename": "unreached-invalid.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 50, "filename": "unreached-invalid.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 56, "filename": "unreached-invalid.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 60, "filename": "unreached-invalid.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 64, "filename": "unreached-invalid.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 71, "filename": "unreached-invalid.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 77, "filename": "unreached-invalid.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 83, "filename": "unreached-invalid.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 89, "filename": "unreached-invalid.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 95, "filename": "unreached-invalid.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 101, "filename": "unreached-invalid.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 107, "filename": "unreached-invalid.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 113, "filename": "unreached-invalid.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 119, "filename": "unreached-invalid.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 125, "filename": "unreached-invalid.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 132, "filename": "unreached-invalid.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 138, "filename": "unreached-invalid.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 144, "filename": "unreached-invalid.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 150, "filename": "unreached-invalid.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 156, "filename": "unreached-invalid.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 162, "filename": "unreached-invalid.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 168, "filename": "unreached-invalid.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 174, "filename": "unreached-invalid.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 180, "filename": "unreached-invalid.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 186, "filename": "unreached-invalid.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 193, "filename": "unreached-invalid.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 199, "filename": "unreached-invalid.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 205, "filename": "unreached-invalid.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 211, "filename": "unreached-invalid.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 217, "filename": "unreached-invalid.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 223, "filename": "unreached-invalid.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 229, "filename": "unreached-invalid.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 235, "filename": "unreached-invalid.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 241, "filename": "unreached-invalid.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 247, "filename": "unreached-invalid.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 253, "filename": "unreached-invalid.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 259, "filename": "unreached-invalid.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 265, "filename": "unreached-invalid.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 271, "filename": "unreached-invalid.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 277, "filename": "unreached-invalid.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 284, "filename": "unreached-invalid.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 290, "filename": "unreached-invalid.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 296, "filename": "unreached-invalid.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 302, "filename": "unreached-invalid.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 308, "filename": "unreached-invalid.52.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 314, "filename": "unreached-invalid.53.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 321, "filename": "unreached-invalid.54.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 327, "filename": "unreached-invalid.55.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 334, "filename": "unreached-invalid.56.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 340, "filename": "unreached-invalid.57.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 348, "filename": "unreached-invalid.58.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 354, "filename": "unreached-invalid.59.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 360, "filename": "unreached-invalid.60.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 366, "filename": "unreached-invalid.61.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 372, "filename": "unreached-invalid.62.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 378, "filename": "unreached-invalid.63.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 384, "filename": "unreached-invalid.64.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 390, "filename": "unreached-invalid.65.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 396, "filename": "unreached-invalid.66.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 402, "filename": "unreached-invalid.67.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 409, "filename": "unreached-invalid.68.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 415, "filename": "unreached-invalid.69.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 421, "filename": "unreached-invalid.70.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 427, "filename": "unreached-invalid.71.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 433, "filename": "unreached-invalid.72.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 439, "filename": "unreached-invalid.73.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 445, "filename": "unreached-invalid.74.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 451, "filename": "unreached-invalid.75.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 457, "filename": "unreached-invalid.76.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 463, "filename": "unreached-invalid.77.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 470, "filename": "unreached-invalid.78.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 477, "filename": "unreached-invalid.79.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 484, "filename": "unreached-invalid.80.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 490, "filename": "unreached-invalid.81.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 498, "filename": "unreached-invalid.82.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 507, "filename": "unreached-invalid.83.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 515, "filename": "unreached-invalid.84.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 521, "filename": "unreached-invalid.85.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 527, "filename": "unreached-invalid.86.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 540, "filename": "unreached-invalid.87.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 546, "filename": "unreached-invalid.88.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 552, "filename": "unreached-invalid.89.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 558, "filename": "unreached-invalid.90.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 565, "filename": "unreached-invalid.91.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 571, "filename": "unreached-invalid.92.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 577, "filename": "unreached-invalid.93.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 584, "filename": "unreached-invalid.94.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 590, "filename": "unreached-invalid.95.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 596, "filename": "unreached-invalid.96.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 604, "filename": "unreached-invalid.97.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 611, "filename": "unreached-invalid.98.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 617, "filename": "unreached-invalid.99.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 623, "filename": "unreached-invalid.100.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 629, "filename": "unreached-invalid.101.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 637, "filename": "unreached-invalid.102.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 643, "filename": "unreached-invalid.103.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 649, "filename": "unreached-invalid.104.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 656, "filename": "unreached-invalid.105.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 662, "filename": "unreached-invalid.106.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 669, "filename": "unreached-invalid.107.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 676, "filename": "unreached-invalid.108.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 687, "filename": "unreached-invalid.109.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 699, "filename": "unreached-invalid.110.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 704, "filename": "unreached-invalid.111.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 710, "filename": "unreached-invalid.112.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 715, "filename": "unreached-invalid.113.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 720, "filename": "unreached-invalid.114.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 726, "filename": "unreached-invalid.115.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 733, "filename": "unreached-invalid.116.wasm", "text": "type mismatch", "module_type": "binary"}]} diff --git a/tests/gen/unreached-valid.0.wasm b/tests/gen/unreached-valid.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..edec94f842fdfcfb915584a391be98ccb79a10e7 GIT binary patch literal 249 zcmZ{fJraU25QX3JuPM}0X}AD|-as8I4*?OQ=mf?Ip>w42-X(>SfPg-28KH>g-;5mjgX?ysaE`!N^#P_>=&uaxzwN`*49e!q7+9s^LH%! zqD+aVl{#C({kvPin|u!VL5j3)EBNDm5CLl>h*@N`Hwh3MZ)@mQx8|oFFy92OYy@oV Ld}rpVc(-6LvYa{n literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-valid.1.wasm b/tests/gen/unreached-valid.1.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7a48446bc928f62e228c1774a14bfab38b345d26 GIT binary patch literal 66 zcmZQbEY4+QU|?WmVN76PU}j=uVCQG#&P`1%(M`%PDap@eVBnHvlxAS6VX9?tWaMLF QU}WT$aslc918ym907bb7YXATM literal 0 HcmV?d00001 diff --git a/tests/gen/unreached-valid.json b/tests/gen/unreached-valid.json new file mode 100644 index 0000000..30a2dad --- /dev/null +++ b/tests/gen/unreached-valid.json @@ -0,0 +1,9 @@ +{"source_filename": "unreached-valid.wast", + "commands": [ + {"type": "module", "line": 1, "filename": "unreached-valid.0.wasm"}, + {"type": "assert_trap", "line": 43, "action": {"type": "invoke", "field": "select-trap-left", "args": [{"type": "i32", "value": "1"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 44, "action": {"type": "invoke", "field": "select-trap-left", "args": [{"type": "i32", "value": "0"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 45, "action": {"type": "invoke", "field": "select-trap-right", "args": [{"type": "i32", "value": "1"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 46, "action": {"type": "invoke", "field": "select-trap-right", "args": [{"type": "i32", "value": "0"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "module", "line": 50, "filename": "unreached-valid.1.wasm"}, + {"type": "assert_trap", "line": 64, "action": {"type": "invoke", "field": "meet-bottom", "args": []}, "text": "unreachable", "expected": []}]} diff --git a/tests/global.wast b/tests/global.wast index f380817..3a6c200 100644 --- a/tests/global.wast +++ b/tests/global.wast @@ -17,14 +17,24 @@ (global $z1 i32 (global.get 0)) (global $z2 i64 (global.get 1)) + ;; W2C2: No support for external references + ;; (global $r externref (ref.null extern)) + ;; (global $mr (mut externref) (ref.null extern)) + ;; (global funcref (ref.null func)) + (func (export "get-a") (result i32) (global.get $a)) (func (export "get-b") (result i64) (global.get $b)) + ;; W2C2: No support for external references + ;; (func (export "get-r") (result externref) (global.get $r)) + ;; (func (export "get-mr") (result externref) (global.get $mr)) (func (export "get-x") (result i32) (global.get $x)) (func (export "get-y") (result i64) (global.get $y)) (func (export "get-z1") (result i32) (global.get $z1)) (func (export "get-z2") (result i64) (global.get $z2)) (func (export "set-x") (param i32) (global.set $x (local.get 0))) (func (export "set-y") (param i64) (global.set $y (local.get 0))) + ;; W2C2: No support for external references + ;; (func (export "set-mr") (param externref) (global.set $mr (local.get 0))) (func (export "get-3") (result f32) (global.get 3)) (func (export "get-4") (result f64) (global.get 4)) @@ -188,6 +198,9 @@ (assert_return (invoke "get-a") (i32.const -2)) (assert_return (invoke "get-b") (i64.const -5)) +;; W2C2: No support for external references +;; (assert_return (invoke "get-r") (ref.null extern)) +;; (assert_return (invoke "get-mr") (ref.null extern)) (assert_return (invoke "get-x") (i32.const -12)) (assert_return (invoke "get-y") (i64.const -15)) (assert_return (invoke "get-z1") (i32.const 666)) @@ -200,13 +213,26 @@ (assert_return (invoke "set-x" (i32.const 6))) (assert_return (invoke "set-y" (i64.const 7))) + +(assert_return (invoke "set-7" (f32.const 8))) +(assert_return (invoke "set-8" (f64.const 9))) + +(assert_return (invoke "get-x") (i32.const 6)) +(assert_return (invoke "get-y") (i64.const 7)) +(assert_return (invoke "get-7") (f32.const 8)) +(assert_return (invoke "get-8") (f64.const 9)) + (assert_return (invoke "set-7" (f32.const 8))) (assert_return (invoke "set-8" (f64.const 9))) +;; W2C2: No support for external references +;; (assert_return (invoke "set-mr" (ref.extern 10))) (assert_return (invoke "get-x") (i32.const 6)) (assert_return (invoke "get-y") (i64.const 7)) (assert_return (invoke "get-7") (f32.const 8)) (assert_return (invoke "get-8") (f64.const 9)) +;; W2C2: No support for external references +;; (assert_return (invoke "get-mr") (ref.extern 10)) (assert_return (invoke "as-select-first") (i32.const 6)) (assert_return (invoke "as-select-mid") (i32.const 2)) @@ -308,6 +334,12 @@ "type mismatch" ) +;; W2C2: No support for external references +;; (assert_invalid +;; (module (global (import "" "") externref) (global funcref (global.get 0))) +;; "type mismatch" +;; ) + (assert_invalid (module (global (import "test" "global-i32") i32) (global i32 (global.get 0) (global.get 0))) "type mismatch" @@ -323,6 +355,15 @@ "unknown global" ) +(assert_invalid + (module (global i32 (i32.const 0)) (global i32 (global.get 0))) + "unknown global" +) +(assert_invalid + (module (global $g i32 (i32.const 0)) (global i32 (global.get $g))) + "unknown global" +) + (assert_invalid (module (global i32 (global.get 1)) (global i32 (i32.const 0))) "unknown global" diff --git a/tests/if.wast b/tests/if.wast index 8119407..63b73f7 100644 --- a/tests/if.wast +++ b/tests/if.wast @@ -502,7 +502,7 @@ ;; ) ;; ) - ;; W2C2: No support for func block types + ;; W2C2: No support for func if types ;; ;; Block signature syntax ;; ;; (type $block-sig-1 (func)) @@ -740,7 +740,7 @@ ;; (assert_return ;; (invoke "add64_u_saturated" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const -1) ;; ) -;; W2C2: No support for func block types +;; W2C2: No support for func if types ;; (assert_return (invoke "type-use")) (assert_return (invoke "atypical-condition")) diff --git a/tests/local_get.wast b/tests/local_get.wast index 681245f..6acab39 100644 --- a/tests/local_get.wast +++ b/tests/local_get.wast @@ -223,3 +223,4 @@ (module (func $large-mixed (param i64) (local i32 i64) (local.get 214324343) drop)) "unknown local" ) + diff --git a/tests/local_set.wast b/tests/local_set.wast index c8dfdc2..ce9cf77 100644 --- a/tests/local_set.wast +++ b/tests/local_set.wast @@ -359,3 +359,4 @@ (module (func $large-mixed (param i64) (local i32 i64) (local.set 214324343 (i32.const 0)))) "unknown local" ) + diff --git a/tests/loop.wast b/tests/loop.wast index 9141d00..ff06e59 100644 --- a/tests/loop.wast +++ b/tests/loop.wast @@ -15,10 +15,18 @@ (loop (result i32) (i32.const 7)) ) - (func (export "multi") (result i32) - (loop (call $dummy) (call $dummy) (call $dummy) (call $dummy)) - (loop (result i32) (call $dummy) (call $dummy) (call $dummy) (i32.const 8)) - ) + ;; W2C2: No support for loops with multiple return values + ;; (func (export "multi") (result i32) + ;; (loop (call $dummy) (call $dummy) (call $dummy) (call $dummy)) + ;; (loop (result i32) (call $dummy) (call $dummy) (i32.const 8) (call $dummy)) + ;; (drop) + ;; (loop (result i32 i64 i32) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 8) (call $dummy) + ;; (call $dummy) (call $dummy) (call $dummy) (i64.const 7) (call $dummy) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 9) (call $dummy) + ;; ) + ;; (drop) (drop) + ;; ) (func (export "nested") (result i32) (loop (result i32) @@ -189,6 +197,30 @@ ) ) + ;; W2C2: No support for loops with multiple return values + ;; (func (export "as-binary-operands") (result i32) + ;; (i32.mul + ;; (loop (result i32 i32) + ;; (call $dummy) (i32.const 3) (call $dummy) (i32.const 4) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-compare-operands") (result i32) + ;; (f32.gt + ;; (loop (result f32 f32) + ;; (call $dummy) (f32.const 3) (call $dummy) (f32.const 3) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-mixed-operands") (result i32) + ;; (loop (result i32 i32) + ;; (call $dummy) (i32.const 3) (call $dummy) (i32.const 4) + ;; ) + ;; (i32.const 5) + ;; (i32.add) + ;; (i32.mul) + ;; ) + (func (export "break-bare") (result i32) (block (loop (br 1) (br 0) (unreachable))) (block (loop (br_if 1 (i32.const 1)) (unreachable))) @@ -196,11 +228,27 @@ (block (loop (br_table 1 1 1 (i32.const 1)) (unreachable))) (i32.const 19) ) - (func (export "break-value") (result i32) - (block (result i32) - (loop (result i32) (br 1 (i32.const 18)) (br 0) (i32.const 19)) - ) - ) + ;; W2C2: No support for loops with params + ;; (func (export "break-value") (result i32) + ;; (block (result i32) + ;; (i32.const 0) + ;; (loop (param i32) + ;; (block (br 2 (i32.const 18))) + ;; (br 0 (i32.const 20)) + ;; ) + ;; (i32.const 19) + ;; ) + ;; ) + ;; (func (export "break-multi-value") (result i32 i32 i64) + ;; (block (result i32 i32 i64) + ;; (i32.const 0) (i32.const 0) (i64.const 0) + ;; (loop (param i32 i32 i64) + ;; (block (br 2 (i32.const 18) (i32.const -18) (i64.const 18))) + ;; (br 0 (i32.const 20) (i32.const -20) (i64.const 20)) + ;; ) + ;; (i32.const 19) (i32.const -19) (i64.const 19) + ;; ) + ;; ) (func (export "break-repeated") (result i32) (block (result i32) (loop (result i32) @@ -234,6 +282,67 @@ (local.get 0) ) + ;; W2C2: No support for loops with params + ;; (func (export "param") (result i32) + ;; (i32.const 1) + ;; (loop (param i32) (result i32) + ;; (i32.const 2) + ;; (i32.add) + ;; ) + ;; ) + ;; (func (export "params") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (loop (param i32 i32) (result i32) + ;; (i32.add) + ;; ) + ;; ) + ;; (func (export "params-id") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (loop (param i32 i32) (result i32 i32)) + ;; (i32.add) + ;; ) + ;; (func (export "param-break") (result i32) + ;; (local $x i32) + ;; (i32.const 1) + ;; (loop (param i32) (result i32) + ;; (i32.const 4) + ;; (i32.add) + ;; (local.tee $x) + ;; (local.get $x) + ;; (i32.const 10) + ;; (i32.lt_u) + ;; (br_if 0) + ;; ) + ;; ) + ;; (func (export "params-break") (result i32) + ;; (local $x i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (loop (param i32 i32) (result i32) + ;; (i32.add) + ;; (local.tee $x) + ;; (i32.const 3) + ;; (local.get $x) + ;; (i32.const 10) + ;; (i32.lt_u) + ;; (br_if 0) + ;; (drop) + ;; ) + ;; ) + ;; (func (export "params-id-break") (result i32) + ;; (local $x i32) + ;; (local.set $x (i32.const 0)) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (loop (param i32 i32) (result i32 i32) + ;; (local.set $x (i32.add (local.get $x) (i32.const 1))) + ;; (br_if 0 (i32.lt_u (local.get $x) (i32.const 10))) + ;; ) + ;; (i32.add) + ;; ) + (func $fx (export "effects") (result i32) (local i32) (block @@ -300,11 +409,34 @@ ) (local.get 3) ) + + ;; W2C2: No support for func loop types + ;; (type $block-sig-1 (func)) + ;; (type $block-sig-2 (func (result i32))) + ;; (type $block-sig-3 (func (param $x i32))) + ;; (type $block-sig-4 (func (param i32 f64 i32) (result i32 f64 i32))) + ;; + ;; (func (export "type-use") + ;; (loop (type $block-sig-1)) + ;; (loop (type $block-sig-2) (i32.const 0)) + ;; (loop (type $block-sig-3) (drop)) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (loop (type $block-sig-4)) + ;; (drop) (drop) (drop) + ;; (loop (type $block-sig-2) (result i32) (i32.const 0)) + ;; (loop (type $block-sig-3) (param i32) (drop)) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (loop (type $block-sig-4) + ;; (param i32) (param f64 i32) (result i32 f64) (result i32) + ;; ) + ;; (drop) (drop) (drop) + ;; ) ) (assert_return (invoke "empty")) (assert_return (invoke "singular") (i32.const 7)) -(assert_return (invoke "multi") (i32.const 8)) +;; W2C2: No support for loops with multiple return values +;; (assert_return (invoke "multi") (i32.const 8)) (assert_return (invoke "nested") (i32.const 9)) (assert_return (invoke "deep") (i32.const 150)) @@ -343,12 +475,28 @@ (assert_return (invoke "as-binary-operand") (i32.const 12)) (assert_return (invoke "as-test-operand") (i32.const 0)) (assert_return (invoke "as-compare-operand") (i32.const 0)) +;; W2C2: No support for loops with multiple return values +;; (assert_return (invoke "as-binary-operands") (i32.const 12)) +;; (assert_return (invoke "as-compare-operands") (i32.const 0)) +;; (assert_return (invoke "as-mixed-operands") (i32.const 27)) (assert_return (invoke "break-bare") (i32.const 19)) -(assert_return (invoke "break-value") (i32.const 18)) -(assert_return (invoke "break-repeated") (i32.const 18)) +;; W2C2: No support for loops with params +;; (assert_return (invoke "break-value") (i32.const 18)) +;; (assert_return (invoke "break-multi-value") +;; (i32.const 18) (i32.const -18) (i64.const 18) +;; ) +;; (assert_return (invoke "break-repeated") (i32.const 18)) (assert_return (invoke "break-inner") (i32.const 0x1f)) +;; W2C2: No support for loops with params +;; (assert_return (invoke "param") (i32.const 3)) +;; (assert_return (invoke "params") (i32.const 3)) +;; (assert_return (invoke "params-id") (i32.const 3)) +;; (assert_return (invoke "param-break") (i32.const 13)) +;; (assert_return (invoke "params-break") (i32.const 12)) +;; (assert_return (invoke "params-id-break") (i32.const 3)) + (assert_return (invoke "effects") (i32.const 1)) (assert_return (invoke "while" (i64.const 0)) (i64.const 1)) @@ -382,6 +530,92 @@ (assert_return (invoke "nesting" (f32.const 7) (f32.const 100)) (f32.const 4381.54785156)) (assert_return (invoke "nesting" (f32.const 7) (f32.const 101)) (f32.const 2601)) +;; W2C2: No support for func loop types +;; (assert_return (invoke "type-use")) + +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (type $sig) (result i32) (param i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (param i32) (type $sig) (result i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (param i32) (result i32) (type $sig)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (result i32) (type $sig) (param i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (result i32) (param i32) (type $sig)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(func (i32.const 0) (loop (result i32) (param i32)))" + ) + "unexpected token" +) + +(assert_malformed + (module quote "(func (i32.const 0) (loop (param $x i32) (drop)))") + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func))" + "(func (loop (type $sig) (result i32) (i32.const 0)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (loop (type $sig) (result i32) (i32.const 0)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (type $sig) (param i32) (drop)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32 i32) (result i32)))" + "(func (i32.const 0) (loop (type $sig) (param i32) (result i32)) (unreachable))" + ) + "inline function type" +) + +(assert_invalid + (module + (type $sig (func)) + (func (loop (type $sig) (i32.const 0))) + ) + "type mismatch" +) + (assert_invalid (module (func $type-empty-i32 (result i32) (loop))) "type mismatch" @@ -405,24 +639,60 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-value-nums-vs-void + (loop (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-empty-vs-num (result i32) (loop (result i32)) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-empty-vs-nums (result i32 i32) + (loop (result i32 i32)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-void-vs-num (result i32) (loop (result i32) (nop)) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-void-vs-nums (result i32 i32) + (loop (result i32 i32) (nop)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-num-vs-num (result i32) (loop (result i32) (f32.const 0)) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-num-vs-nums (result i32 i32) + (loop (result i32 i32) (i32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-partial-vs-nums (result i32 i32) + (i32.const 1) (loop (result i32 i32) (i32.const 2)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-nums-vs-num (result i32) + (loop (result i32) (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-unreached-select (result i32) (loop (result i64) (select (unreachable) (unreachable) (unreachable))) @@ -458,6 +728,63 @@ "type mismatch" ) +(assert_invalid + (module (func $type-param-void-vs-num + (loop (param i32) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (loop (param i32 f64) (drop) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (f32.const 0) (loop (param i32) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (f32.const 0) (loop (param f32 i32) (drop) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-nested-void-vs-num + (block (loop (param i32) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (block (loop (param i32 f64) (drop) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (block (f32.const 0) (loop (param i32) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (block (f32.const 0) (loop (param f32 i32) (drop) (drop))) + )) + "type mismatch" +) + +(assert_malformed + (module quote "(func (param i32) (result i32) loop (param $x i32) end)") + "unexpected token" +) +(assert_malformed + (module quote "(func (param i32) (result i32) (loop (param $x i32)))") + "unexpected token" +) (assert_malformed (module quote "(func loop end $l)") diff --git a/tests/memory.wast b/tests/memory.wast index 37579dd..baebde3 100644 --- a/tests/memory.wast +++ b/tests/memory.wast @@ -136,44 +136,44 @@ ;; Sign and zero extending memory loads (func (export "i32_load8_s") (param $i i32) (result i32) - (i32.store8 (i32.const 8) (local.get $i)) - (i32.load8_s (i32.const 8)) + (i32.store8 (i32.const 8) (local.get $i)) + (i32.load8_s (i32.const 8)) ) (func (export "i32_load8_u") (param $i i32) (result i32) - (i32.store8 (i32.const 8) (local.get $i)) - (i32.load8_u (i32.const 8)) + (i32.store8 (i32.const 8) (local.get $i)) + (i32.load8_u (i32.const 8)) ) (func (export "i32_load16_s") (param $i i32) (result i32) - (i32.store16 (i32.const 8) (local.get $i)) - (i32.load16_s (i32.const 8)) + (i32.store16 (i32.const 8) (local.get $i)) + (i32.load16_s (i32.const 8)) ) (func (export "i32_load16_u") (param $i i32) (result i32) - (i32.store16 (i32.const 8) (local.get $i)) - (i32.load16_u (i32.const 8)) + (i32.store16 (i32.const 8) (local.get $i)) + (i32.load16_u (i32.const 8)) ) (func (export "i64_load8_s") (param $i i64) (result i64) - (i64.store8 (i32.const 8) (local.get $i)) - (i64.load8_s (i32.const 8)) + (i64.store8 (i32.const 8) (local.get $i)) + (i64.load8_s (i32.const 8)) ) (func (export "i64_load8_u") (param $i i64) (result i64) - (i64.store8 (i32.const 8) (local.get $i)) - (i64.load8_u (i32.const 8)) + (i64.store8 (i32.const 8) (local.get $i)) + (i64.load8_u (i32.const 8)) ) (func (export "i64_load16_s") (param $i i64) (result i64) - (i64.store16 (i32.const 8) (local.get $i)) - (i64.load16_s (i32.const 8)) + (i64.store16 (i32.const 8) (local.get $i)) + (i64.load16_s (i32.const 8)) ) (func (export "i64_load16_u") (param $i i64) (result i64) - (i64.store16 (i32.const 8) (local.get $i)) - (i64.load16_u (i32.const 8)) + (i64.store16 (i32.const 8) (local.get $i)) + (i64.load16_u (i32.const 8)) ) (func (export "i64_load32_s") (param $i i64) (result i64) - (i64.store32 (i32.const 8) (local.get $i)) - (i64.load32_s (i32.const 8)) + (i64.store32 (i32.const 8) (local.get $i)) + (i64.load32_s (i32.const 8)) ) (func (export "i64_load32_u") (param $i i64) (result i64) - (i64.store32 (i32.const 8) (local.get $i)) - (i64.load32_u (i32.const 8)) + (i64.store32 (i32.const 8) (local.get $i)) + (i64.load32_u (i32.const 8)) ) ) @@ -239,4 +239,29 @@ (assert_malformed (module quote "(import \"\" \"\" (memory $foo 1))" "(import \"\" \"\" (memory $foo 1))") - "duplicate memory") \ No newline at end of file + "duplicate memory") + +;; Test that exporting random globals does not change a memory's semantics. + +(module + (memory (export "memory") 1 1) + + ;; These should not change the behavior of memory accesses. + (global (export "__data_end") i32 (i32.const 10000)) + (global (export "__stack_top") i32 (i32.const 10000)) + (global (export "__heap_base") i32 (i32.const 10000)) + + (func (export "load") (param i32) (result i32) + (i32.load8_u (local.get 0)) + ) +) + +;; None of these memory accesses should trap. +(assert_return (invoke "load" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 10000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 20000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 30000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 40000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 50000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 60000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 65535)) (i32.const 0)) diff --git a/tests/memory_trap.wast b/tests/memory_trap.wast index a4156fe..5ce8f5c 100644 --- a/tests/memory_trap.wast +++ b/tests/memory_trap.wast @@ -20,7 +20,7 @@ (assert_return (invoke "store" (i32.const -4) (i32.const 42))) (assert_return (invoke "load" (i32.const -4)) (i32.const 42)) -(assert_trap (invoke "store" (i32.const -3) (i32.const 13)) "out of bounds memory access") +(assert_trap (invoke "store" (i32.const -3) (i32.const 0x12345678)) "out of bounds memory access") (assert_trap (invoke "load" (i32.const -3)) "out of bounds memory access") (assert_trap (invoke "store" (i32.const -2) (i32.const 13)) "out of bounds memory access") (assert_trap (invoke "load" (i32.const -2)) "out of bounds memory access") @@ -268,3 +268,15 @@ ;; No memory was changed (assert_return (invoke "i64.load" (i32.const 0xfff8)) (i64.const 0x6867666564636261)) (assert_return (invoke "i64.load" (i32.const 0)) (i64.const 0x6867666564636261)) + +;; Check that out of bounds store do not store partial data. +;; Zero last 8 bytes. +(assert_return (invoke "i64.store" (i32.const 0xfff8) (i64.const 0))) +(assert_trap (invoke "i32.store" (i32.const 0xfffd) (i32.const 0x12345678)) "out of bounds memory access") +(assert_return (invoke "i32.load" (i32.const 0xfffc)) (i32.const 0)) +(assert_trap (invoke "i64.store" (i32.const 0xfff9) (i64.const 0x1234567890abcdef)) "out of bounds memory access") +(assert_return (invoke "i64.load" (i32.const 0xfff8)) (i64.const 0)) +(assert_trap (invoke "f32.store" (i32.const 0xfffd) (f32.const 0x12345678)) "out of bounds memory access") +(assert_return (invoke "f32.load" (i32.const 0xfffc)) (f32.const 0)) +(assert_trap (invoke "f64.store" (i32.const 0xfff9) (f64.const 0x1234567890abcdef)) "out of bounds memory access") +(assert_return (invoke "f64.load" (i32.const 0xfff8)) (f64.const 0)) diff --git a/tests/return.wast b/tests/return.wast index 550762e..7077f25 100644 --- a/tests/return.wast +++ b/tests/return.wast @@ -476,3 +476,4 @@ (module (func $type-value-num-vs-num (result f64) (return (i64.const 1)))) "type mismatch" ) + diff --git a/tests/select.wast b/tests/select.wast old mode 100755 new mode 100644 index 6f9e899..835bb25 --- a/tests/select.wast +++ b/tests/select.wast @@ -1,487 +1,537 @@ -(module - - (memory 1) - - (func $dummy) - - (func (export "select_i32") (param $lhs i32) (param $rhs i32) (param $cond i32) (result i32) - (select (local.get $lhs) (local.get $rhs) (local.get $cond))) - - (func (export "select_i64") (param $lhs i64) (param $rhs i64) (param $cond i32) (result i64) - (select (local.get $lhs) (local.get $rhs) (local.get $cond))) - - (func (export "select_f32") (param $lhs f32) (param $rhs f32) (param $cond i32) (result f32) - (select (local.get $lhs) (local.get $rhs) (local.get $cond))) - - (func (export "select_f64") (param $lhs f64) (param $rhs f64) (param $cond i32) (result f64) - (select (local.get $lhs) (local.get $rhs) (local.get $cond))) - - ;; Check that both sides of the select are evaluated - (func (export "select_trap_l") (param $cond i32) (result i32) - (select (unreachable) (i32.const 0) (local.get $cond)) - ) - (func (export "select_trap_r") (param $cond i32) (result i32) - (select (i32.const 0) (unreachable) (local.get $cond)) - ) - - (func (export "select_unreached") - (unreachable) (select) - (unreachable) (i32.const 0) (select) - (unreachable) (i32.const 0) (i32.const 0) (select) - (unreachable) (i32.const 0) (i32.const 0) (i32.const 0) (select) - (unreachable) (f32.const 0) (i32.const 0) (select) - (unreachable) - ) - - (func (export "select_unreached_result_1") (result i32) - (unreachable) (i32.add (select)) - ) - - (func (export "select_unreached_result_2") (result i64) - (unreachable) (i64.add (select (i64.const 0) (i32.const 0))) - ) - - ;; As the argument of control constructs and instructions - - (func (export "as-select-first") (param i32) (result i32) - (select (select (i32.const 0) (i32.const 1) (local.get 0)) (i32.const 2) (i32.const 3)) - ) - (func (export "as-select-mid") (param i32) (result i32) - (select (i32.const 2) (select (i32.const 0) (i32.const 1) (local.get 0)) (i32.const 3)) - ) - (func (export "as-select-last") (param i32) (result i32) - (select (i32.const 2) (i32.const 3) (select (i32.const 0) (i32.const 1) (local.get 0))) - ) - - (func (export "as-loop-first") (param i32) (result i32) - (loop (result i32) (select (i32.const 2) (i32.const 3) (local.get 0)) (call $dummy) (call $dummy)) - ) - (func (export "as-loop-mid") (param i32) (result i32) - (loop (result i32) (call $dummy) (select (i32.const 2) (i32.const 3) (local.get 0)) (call $dummy)) - ) - (func (export "as-loop-last") (param i32) (result i32) - (loop (result i32) (call $dummy) (call $dummy) (select (i32.const 2) (i32.const 3) (local.get 0))) - ) - - (func (export "as-if-condition") (param i32) - (select (i32.const 2) (i32.const 3) (local.get 0)) (if (then (call $dummy))) - ) - (func (export "as-if-then") (param i32) (result i32) - (if (result i32) (i32.const 1) (then (select (i32.const 2) (i32.const 3) (local.get 0))) (else (i32.const 4))) - ) - (func (export "as-if-else") (param i32) (result i32) - (if (result i32) (i32.const 0) (then (i32.const 2)) (else (select (i32.const 2) (i32.const 3) (local.get 0)))) - ) - - (func (export "as-br_if-first") (param i32) (result i32) - (block (result i32) (br_if 0 (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 4))) - ) - (func (export "as-br_if-last") (param i32) (result i32) - (block (result i32) (br_if 0 (i32.const 2) (select (i32.const 2) (i32.const 3) (local.get 0)))) - ) - - (func (export "as-br_table-first") (param i32) (result i32) - (block (result i32) (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 2) (br_table 0 0)) - ) - (func (export "as-br_table-last") (param i32) (result i32) - (block (result i32) (i32.const 2) (select (i32.const 2) (i32.const 3) (local.get 0)) (br_table 0 0)) - ) - - (func $func (param i32 i32) (result i32) (local.get 0)) - (type $check (func (param i32 i32) (result i32))) - (table funcref (elem $func)) - (func (export "as-call_indirect-first") (param i32) (result i32) - (block (result i32) - (call_indirect (type $check) - (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 1) (i32.const 0) - ) - ) - ) - (func (export "as-call_indirect-mid") (param i32) (result i32) - (block (result i32) - (call_indirect (type $check) - (i32.const 1) (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 0) - ) - ) - ) - (func (export "as-call_indirect-last") (param i32) (result i32) - (block (result i32) - (call_indirect (type $check) - (i32.const 1) (i32.const 4) (select (i32.const 2) (i32.const 3) (local.get 0)) - ) - ) - ) - - (func (export "as-store-first") (param i32) - (select (i32.const 0) (i32.const 4) (local.get 0)) (i32.const 1) (i32.store) - ) - (func (export "as-store-last") (param i32) - (i32.const 8) (select (i32.const 1) (i32.const 2) (local.get 0)) (i32.store) - ) - - (func (export "as-memory.grow-value") (param i32) (result i32) - (memory.grow (select (i32.const 1) (i32.const 2) (local.get 0))) - ) - - (func $f (param i32) (result i32) (local.get 0)) - - (func (export "as-call-value") (param i32) (result i32) - (call $f (select (i32.const 1) (i32.const 2) (local.get 0))) - ) - (func (export "as-return-value") (param i32) (result i32) - (select (i32.const 1) (i32.const 2) (local.get 0)) (return) - ) - (func (export "as-drop-operand") (param i32) - (drop (select (i32.const 1) (i32.const 2) (local.get 0))) - ) - (func (export "as-br-value") (param i32) (result i32) - (block (result i32) (br 0 (select (i32.const 1) (i32.const 2) (local.get 0)))) - ) - (func (export "as-local.set-value") (param i32) (result i32) - (local i32) (local.set 0 (select (i32.const 1) (i32.const 2) (local.get 0))) (local.get 0) - ) - (func (export "as-local.tee-value") (param i32) (result i32) - (local.tee 0 (select (i32.const 1) (i32.const 2) (local.get 0))) - ) - (global $a (mut i32) (i32.const 10)) - (func (export "as-global.set-value") (param i32) (result i32) - (global.set $a (select (i32.const 1) (i32.const 2) (local.get 0))) - (global.get $a) - ) - (func (export "as-load-operand") (param i32) (result i32) - (i32.load (select (i32.const 0) (i32.const 4) (local.get 0))) - ) - - (func (export "as-unary-operand") (param i32) (result i32) - (i32.eqz (select (i32.const 0) (i32.const 1) (local.get 0))) - ) - (func (export "as-binary-operand") (param i32) (result i32) - (i32.mul - (select (i32.const 1) (i32.const 2) (local.get 0)) - (select (i32.const 1) (i32.const 2) (local.get 0)) - ) - ) - (func (export "as-test-operand") (param i32) (result i32) - (block (result i32) - (i32.eqz (select (i32.const 0) (i32.const 1) (local.get 0))) - ) - ) - - (func (export "as-compare-left") (param i32) (result i32) - (block (result i32) - (i32.le_s (select (i32.const 1) (i32.const 2) (local.get 0)) (i32.const 1)) - ) - ) - (func (export "as-compare-right") (param i32) (result i32) - (block (result i32) - (i32.ne (i32.const 1) (select (i32.const 0) (i32.const 1) (local.get 0))) - ) - ) - - (func (export "as-convert-operand") (param i32) (result i32) - (block (result i32) - (i32.wrap_i64 (select (i64.const 1) (i64.const 0) (local.get 0))) - ) - ) - -) - -(assert_return (invoke "select_i32" (i32.const 1) (i32.const 2) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const 1)) (i64.const 2)) -(assert_return (invoke "select_f32" (f32.const 1) (f32.const 2) (i32.const 1)) (f32.const 1)) -(assert_return (invoke "select_f64" (f64.const 1) (f64.const 2) (i32.const 1)) (f64.const 1)) - -(assert_return (invoke "select_i32" (i32.const 1) (i32.const 2) (i32.const 0)) (i32.const 2)) -(assert_return (invoke "select_i32" (i32.const 2) (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const -1)) (i64.const 2)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const 0xf0f0f0f0)) (i64.const 2)) - -(assert_return (invoke "select_f32" (f32.const nan) (f32.const 1) (i32.const 1)) (f32.const nan)) -(assert_return (invoke "select_f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 1)) (f32.const nan:0x20304)) -(assert_return (invoke "select_f32" (f32.const nan) (f32.const 1) (i32.const 0)) (f32.const 1)) -(assert_return (invoke "select_f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 0)) (f32.const 1)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan) (i32.const 1)) (f32.const 2)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 1)) (f32.const 2)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan) (i32.const 0)) (f32.const nan)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 0)) (f32.const nan:0x20304)) - -(assert_return (invoke "select_f64" (f64.const nan) (f64.const 1) (i32.const 1)) (f64.const nan)) -(assert_return (invoke "select_f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 1)) (f64.const nan:0x20304)) -(assert_return (invoke "select_f64" (f64.const nan) (f64.const 1) (i32.const 0)) (f64.const 1)) -(assert_return (invoke "select_f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 0)) (f64.const 1)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan) (i32.const 1)) (f64.const 2)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 1)) (f64.const 2)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan) (i32.const 0)) (f64.const nan)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 0)) (f64.const nan:0x20304)) - -(assert_trap (invoke "select_trap_l" (i32.const 1)) "unreachable") -(assert_trap (invoke "select_trap_l" (i32.const 0)) "unreachable") -(assert_trap (invoke "select_trap_r" (i32.const 1)) "unreachable") -(assert_trap (invoke "select_trap_r" (i32.const 0)) "unreachable") - -(assert_return (invoke "as-select-first" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-select-first" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "as-select-mid" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-select-mid" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-select-last" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-select-last" (i32.const 1)) (i32.const 3)) - -(assert_return (invoke "as-loop-first" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-loop-first" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-loop-mid" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-loop-mid" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-loop-last" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-loop-last" (i32.const 1)) (i32.const 2)) - -(assert_return (invoke "as-if-condition" (i32.const 0))) -(assert_return (invoke "as-if-condition" (i32.const 1))) -(assert_return (invoke "as-if-then" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-if-else" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-if-else" (i32.const 1)) (i32.const 2)) - -(assert_return (invoke "as-br_if-first" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-br_if-first" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-br_if-last" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-br_if-last" (i32.const 1)) (i32.const 2)) - -(assert_return (invoke "as-br_table-first" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-br_table-first" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-br_table-last" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-br_table-last" (i32.const 1)) (i32.const 2)) - -(assert_return (invoke "as-call_indirect-first" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-call_indirect-first" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-call_indirect-mid" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-call_indirect-mid" (i32.const 1)) (i32.const 1)) -(assert_trap (invoke "as-call_indirect-last" (i32.const 0)) "undefined element") -(assert_trap (invoke "as-call_indirect-last" (i32.const 1)) "undefined element") - -(assert_return (invoke "as-store-first" (i32.const 0))) -(assert_return (invoke "as-store-first" (i32.const 1))) -(assert_return (invoke "as-store-last" (i32.const 0))) -(assert_return (invoke "as-store-last" (i32.const 1))) - -(assert_return (invoke "as-memory.grow-value" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-memory.grow-value" (i32.const 1)) (i32.const 3)) - -(assert_return (invoke "as-call-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-call-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-return-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-return-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-drop-operand" (i32.const 0))) -(assert_return (invoke "as-drop-operand" (i32.const 1))) -(assert_return (invoke "as-br-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-br-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-local.set-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-local.set-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-local.tee-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-local.tee-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-global.set-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-global.set-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-load-operand" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-load-operand" (i32.const 1)) (i32.const 1)) - -(assert_return (invoke "as-unary-operand" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-unary-operand" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-binary-operand" (i32.const 0)) (i32.const 4)) -(assert_return (invoke "as-binary-operand" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-test-operand" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-test-operand" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-compare-left" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-compare-left" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-compare-right" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-compare-right" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-convert-operand" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-convert-operand" (i32.const 1)) (i32.const 1)) - -(assert_invalid - (module (func $arity-0 (select (nop) (nop) (i32.const 1)) (drop))) - "type mismatch" -) - -;; The first two operands should have the same type as each other - -(assert_invalid - (module (func $type-num-vs-num (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) - "type mismatch" -) -(assert_invalid - (module (func $type-num-vs-num (select (i32.const 1) (f32.const 1.0) (i32.const 1)) (drop))) - "type mismatch" -) -(assert_invalid - (module (func $type-num-vs-num (select (i32.const 1) (f64.const 1.0) (i32.const 1)) (drop))) - "type mismatch" -) - - -(assert_invalid - (module - (func $type-1st-operand-empty - (select) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-2nd-operand-empty - (i32.const 0) (select) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-3rd-operand-empty - (i32.const 0) (i32.const 0) (select) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-1st-operand-empty-in-block - (i32.const 0) (i32.const 0) (i32.const 0) - (block (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-2nd-operand-empty-in-block - (i32.const 0) (i32.const 0) - (block (i32.const 0) (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-3rd-operand-empty-in-block - (i32.const 0) - (block (i32.const 0) (i32.const 0) (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-1st-operand-empty-in-loop - (i32.const 0) (i32.const 0) (i32.const 0) - (loop (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-2nd-operand-empty-in-loop - (i32.const 0) (i32.const 0) - (loop (i32.const 0) (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-3rd-operand-empty-in-loop - (i32.const 0) - (loop (i32.const 0) (i32.const 0) (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-1st-operand-empty-in-then - (i32.const 0) (i32.const 0) (i32.const 0) - (if (then (select) (drop))) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-2nd-operand-empty-in-then - (i32.const 0) (i32.const 0) - (if (then (i32.const 0) (select) (drop))) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-3rd-operand-empty-in-then - (i32.const 0) - (if (then (i32.const 0) (i32.const 0) (select) (drop))) - ) - ) - "type mismatch" -) - -;; Third operand must be i32 - -(assert_invalid - (module (func (select (i32.const 1) (i32.const 1) (i64.const 1)) (drop))) - "type mismatch" -) -(assert_invalid - (module (func (select (i32.const 1) (i32.const 1) (f32.const 1)) (drop))) - "type mismatch" -) -(assert_invalid - (module (func (select (i32.const 1) (i32.const 1) (f64.const 1)) (drop))) - "type mismatch" -) - -;; Result of select has type of first two operands - -(assert_invalid - (module (func (result i32) (select (i64.const 1) (i64.const 1) (i32.const 1)))) - "type mismatch" -) - -;; Validation after unreachable - -;; The first two operands should have the same type as each other -(assert_invalid - (module (func (unreachable) (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) - "type mismatch" -) - -(assert_invalid - (module (func (unreachable) (select (i64.const 1) (i32.const 1) (i32.const 1)) (drop))) - "type mismatch" -) - -;; Third operand must be i32 -(assert_invalid - (module (func (unreachable) (select (i32.const 1) (i32.const 1) (i64.const 1)) (drop))) - "type mismatch" -) - -(assert_invalid - (module (func (unreachable) (select (i32.const 1) (i64.const 1)) (drop))) - "type mismatch" -) - -(assert_invalid - (module (func (unreachable) (select (i64.const 1)) (drop))) - "type mismatch" -) - -;; Result of select has type of first two operands (type of second operand when first one is omitted) -(assert_invalid - (module (func (result i32) (unreachable) (select (i64.const 1) (i32.const 1)))) - "type mismatch" -) - -;; select always has non-empty result -(assert_invalid - (module (func (unreachable) (select))) - "type mismatch" -) - +(module + ;; Auxiliary + (func $dummy) + (table $tab funcref (elem $dummy)) + (memory 1) + + (func (export "select-i32") (param i32 i32 i32) (result i32) + (select (local.get 0) (local.get 1) (local.get 2)) + ) + (func (export "select-i64") (param i64 i64 i32) (result i64) + (select (local.get 0) (local.get 1) (local.get 2)) + ) + (func (export "select-f32") (param f32 f32 i32) (result f32) + (select (local.get 0) (local.get 1) (local.get 2)) + ) + (func (export "select-f64") (param f64 f64 i32) (result f64) + (select (local.get 0) (local.get 1) (local.get 2)) + ) + + ;; W2C2: No support for select with return value + ;; (func (export "select-i32-t") (param i32 i32 i32) (result i32) + ;; (select (result i32) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-i64-t") (param i64 i64 i32) (result i64) + ;; (select (result i64) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-f32-t") (param f32 f32 i32) (result f32) + ;; (select (result f32) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-f64-t") (param f64 f64 i32) (result f64) + ;; (select (result f64) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-funcref") (param funcref funcref i32) (result funcref) + ;; (select (result funcref) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-externref") (param externref externref i32) (result externref) + ;; (select (result externref) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + + ;; As the argument of control constructs and instructions + + (func (export "as-select-first") (param i32) (result i32) + (select (select (i32.const 0) (i32.const 1) (local.get 0)) (i32.const 2) (i32.const 3)) + ) + (func (export "as-select-mid") (param i32) (result i32) + (select (i32.const 2) (select (i32.const 0) (i32.const 1) (local.get 0)) (i32.const 3)) + ) + (func (export "as-select-last") (param i32) (result i32) + (select (i32.const 2) (i32.const 3) (select (i32.const 0) (i32.const 1) (local.get 0))) + ) + + (func (export "as-loop-first") (param i32) (result i32) + (loop (result i32) (select (i32.const 2) (i32.const 3) (local.get 0)) (call $dummy) (call $dummy)) + ) + (func (export "as-loop-mid") (param i32) (result i32) + (loop (result i32) (call $dummy) (select (i32.const 2) (i32.const 3) (local.get 0)) (call $dummy)) + ) + (func (export "as-loop-last") (param i32) (result i32) + (loop (result i32) (call $dummy) (call $dummy) (select (i32.const 2) (i32.const 3) (local.get 0))) + ) + + (func (export "as-if-condition") (param i32) + (select (i32.const 2) (i32.const 3) (local.get 0)) (if (then (call $dummy))) + ) + (func (export "as-if-then") (param i32) (result i32) + (if (result i32) (i32.const 1) (then (select (i32.const 2) (i32.const 3) (local.get 0))) (else (i32.const 4))) + ) + (func (export "as-if-else") (param i32) (result i32) + (if (result i32) (i32.const 0) (then (i32.const 2)) (else (select (i32.const 2) (i32.const 3) (local.get 0)))) + ) + + (func (export "as-br_if-first") (param i32) (result i32) + (block (result i32) (br_if 0 (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 4))) + ) + (func (export "as-br_if-last") (param i32) (result i32) + (block (result i32) (br_if 0 (i32.const 2) (select (i32.const 2) (i32.const 3) (local.get 0)))) + ) + + (func (export "as-br_table-first") (param i32) (result i32) + (block (result i32) (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 2) (br_table 0 0)) + ) + (func (export "as-br_table-last") (param i32) (result i32) + (block (result i32) (i32.const 2) (select (i32.const 2) (i32.const 3) (local.get 0)) (br_table 0 0)) + ) + + (func $func (param i32 i32) (result i32) (local.get 0)) + (type $check (func (param i32 i32) (result i32))) + ;; W2C2: No support for multiple tables + ;; (table $t funcref (elem $func)) + ;; (func (export "as-call_indirect-first") (param i32) (result i32) + ;; (block (result i32) + ;; (call_indirect $t (type $check) + ;; (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 1) (i32.const 0) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-call_indirect-mid") (param i32) (result i32) + ;; (block (result i32) + ;; (call_indirect $t (type $check) + ;; (i32.const 1) (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 0) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-call_indirect-last") (param i32) (result i32) + ;; (block (result i32) + ;; (call_indirect $t (type $check) + ;; (i32.const 1) (i32.const 4) (select (i32.const 2) (i32.const 3) (local.get 0)) + ;; ) + ;; ) + ;; ) + + (func (export "as-store-first") (param i32) + (select (i32.const 0) (i32.const 4) (local.get 0)) (i32.const 1) (i32.store) + ) + (func (export "as-store-last") (param i32) + (i32.const 8) (select (i32.const 1) (i32.const 2) (local.get 0)) (i32.store) + ) + + (func (export "as-memory.grow-value") (param i32) (result i32) + (memory.grow (select (i32.const 1) (i32.const 2) (local.get 0))) + ) + + (func $f (param i32) (result i32) (local.get 0)) + + (func (export "as-call-value") (param i32) (result i32) + (call $f (select (i32.const 1) (i32.const 2) (local.get 0))) + ) + (func (export "as-return-value") (param i32) (result i32) + (select (i32.const 1) (i32.const 2) (local.get 0)) (return) + ) + (func (export "as-drop-operand") (param i32) + (drop (select (i32.const 1) (i32.const 2) (local.get 0))) + ) + (func (export "as-br-value") (param i32) (result i32) + (block (result i32) (br 0 (select (i32.const 1) (i32.const 2) (local.get 0)))) + ) + (func (export "as-local.set-value") (param i32) (result i32) + (local i32) (local.set 0 (select (i32.const 1) (i32.const 2) (local.get 0))) (local.get 0) + ) + (func (export "as-local.tee-value") (param i32) (result i32) + (local.tee 0 (select (i32.const 1) (i32.const 2) (local.get 0))) + ) + (global $a (mut i32) (i32.const 10)) + (func (export "as-global.set-value") (param i32) (result i32) + (global.set $a (select (i32.const 1) (i32.const 2) (local.get 0))) + (global.get $a) + ) + (func (export "as-load-operand") (param i32) (result i32) + (i32.load (select (i32.const 0) (i32.const 4) (local.get 0))) + ) + + (func (export "as-unary-operand") (param i32) (result i32) + (i32.eqz (select (i32.const 0) (i32.const 1) (local.get 0))) + ) + (func (export "as-binary-operand") (param i32) (result i32) + (i32.mul + (select (i32.const 1) (i32.const 2) (local.get 0)) + (select (i32.const 1) (i32.const 2) (local.get 0)) + ) + ) + (func (export "as-test-operand") (param i32) (result i32) + (block (result i32) + (i32.eqz (select (i32.const 0) (i32.const 1) (local.get 0))) + ) + ) + + (func (export "as-compare-left") (param i32) (result i32) + (block (result i32) + (i32.le_s (select (i32.const 1) (i32.const 2) (local.get 0)) (i32.const 1)) + ) + ) + (func (export "as-compare-right") (param i32) (result i32) + (block (result i32) + (i32.ne (i32.const 1) (select (i32.const 0) (i32.const 1) (local.get 0))) + ) + ) + + (func (export "as-convert-operand") (param i32) (result i32) + (block (result i32) + (i32.wrap_i64 (select (i64.const 1) (i64.const 0) (local.get 0))) + ) + ) +) + +(assert_return (invoke "select-i32" (i32.const 1) (i32.const 2) (i32.const 1)) (i32.const 1)) +(assert_return (invoke "select-i64" (i64.const 2) (i64.const 1) (i32.const 1)) (i64.const 2)) +(assert_return (invoke "select-f32" (f32.const 1) (f32.const 2) (i32.const 1)) (f32.const 1)) +(assert_return (invoke "select-f64" (f64.const 1) (f64.const 2) (i32.const 1)) (f64.const 1)) + +(assert_return (invoke "select-i32" (i32.const 1) (i32.const 2) (i32.const 0)) (i32.const 2)) +(assert_return (invoke "select-i32" (i32.const 2) (i32.const 1) (i32.const 0)) (i32.const 1)) +(assert_return (invoke "select-i64" (i64.const 2) (i64.const 1) (i32.const -1)) (i64.const 2)) +(assert_return (invoke "select-i64" (i64.const 2) (i64.const 1) (i32.const 0xf0f0f0f0)) (i64.const 2)) + +(assert_return (invoke "select-f32" (f32.const nan) (f32.const 1) (i32.const 1)) (f32.const nan)) +(assert_return (invoke "select-f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 1)) (f32.const nan:0x20304)) +(assert_return (invoke "select-f32" (f32.const nan) (f32.const 1) (i32.const 0)) (f32.const 1)) +(assert_return (invoke "select-f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 0)) (f32.const 1)) +(assert_return (invoke "select-f32" (f32.const 2) (f32.const nan) (i32.const 1)) (f32.const 2)) +(assert_return (invoke "select-f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 1)) (f32.const 2)) +(assert_return (invoke "select-f32" (f32.const 2) (f32.const nan) (i32.const 0)) (f32.const nan)) +(assert_return (invoke "select-f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 0)) (f32.const nan:0x20304)) + +(assert_return (invoke "select-f64" (f64.const nan) (f64.const 1) (i32.const 1)) (f64.const nan)) +(assert_return (invoke "select-f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 1)) (f64.const nan:0x20304)) +(assert_return (invoke "select-f64" (f64.const nan) (f64.const 1) (i32.const 0)) (f64.const 1)) +(assert_return (invoke "select-f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 0)) (f64.const 1)) +(assert_return (invoke "select-f64" (f64.const 2) (f64.const nan) (i32.const 1)) (f64.const 2)) +(assert_return (invoke "select-f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 1)) (f64.const 2)) +(assert_return (invoke "select-f64" (f64.const 2) (f64.const nan) (i32.const 0)) (f64.const nan)) +(assert_return (invoke "select-f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 0)) (f64.const nan:0x20304)) + +;; W2C2: No support for select with return value +;; (assert_return (invoke "select-i32-t" (i32.const 1) (i32.const 2) (i32.const 1)) (i32.const 1)) +;; (assert_return (invoke "select-i64-t" (i64.const 2) (i64.const 1) (i32.const 1)) (i64.const 2)) +;; (assert_return (invoke "select-f32-t" (f32.const 1) (f32.const 2) (i32.const 1)) (f32.const 1)) +;; (assert_return (invoke "select-f64-t" (f64.const 1) (f64.const 2) (i32.const 1)) (f64.const 1)) +;; (assert_return (invoke "select-funcref" (ref.null func) (ref.null func) (i32.const 1)) (ref.null func)) +;; (assert_return (invoke "select-externref" (ref.extern 1) (ref.extern 2) (i32.const 1)) (ref.extern 1)) +;; +;; (assert_return (invoke "select-i32-t" (i32.const 1) (i32.const 2) (i32.const 0)) (i32.const 2)) +;; (assert_return (invoke "select-i32-t" (i32.const 2) (i32.const 1) (i32.const 0)) (i32.const 1)) +;; (assert_return (invoke "select-i64-t" (i64.const 2) (i64.const 1) (i32.const -1)) (i64.const 2)) +;; (assert_return (invoke "select-i64-t" (i64.const 2) (i64.const 1) (i32.const 0xf0f0f0f0)) (i64.const 2)) +;; (assert_return (invoke "select-externref" (ref.extern 1) (ref.extern 2) (i32.const 0)) (ref.extern 2)) +;; (assert_return (invoke "select-externref" (ref.extern 2) (ref.extern 1) (i32.const 0)) (ref.extern 1)) +;; +;; (assert_return (invoke "select-f32-t" (f32.const nan) (f32.const 1) (i32.const 1)) (f32.const nan)) +;; (assert_return (invoke "select-f32-t" (f32.const nan:0x20304) (f32.const 1) (i32.const 1)) (f32.const nan:0x20304)) +;; (assert_return (invoke "select-f32-t" (f32.const nan) (f32.const 1) (i32.const 0)) (f32.const 1)) +;; (assert_return (invoke "select-f32-t" (f32.const nan:0x20304) (f32.const 1) (i32.const 0)) (f32.const 1)) +;; (assert_return (invoke "select-f32-t" (f32.const 2) (f32.const nan) (i32.const 1)) (f32.const 2)) +;; (assert_return (invoke "select-f32-t" (f32.const 2) (f32.const nan:0x20304) (i32.const 1)) (f32.const 2)) +;; (assert_return (invoke "select-f32-t" (f32.const 2) (f32.const nan) (i32.const 0)) (f32.const nan)) +;; (assert_return (invoke "select-f32-t" (f32.const 2) (f32.const nan:0x20304) (i32.const 0)) (f32.const nan:0x20304)) +;; +;; (assert_return (invoke "select-f64-t" (f64.const nan) (f64.const 1) (i32.const 1)) (f64.const nan)) +;; (assert_return (invoke "select-f64-t" (f64.const nan:0x20304) (f64.const 1) (i32.const 1)) (f64.const nan:0x20304)) +;; (assert_return (invoke "select-f64-t" (f64.const nan) (f64.const 1) (i32.const 0)) (f64.const 1)) +;; (assert_return (invoke "select-f64-t" (f64.const nan:0x20304) (f64.const 1) (i32.const 0)) (f64.const 1)) +;; (assert_return (invoke "select-f64-t" (f64.const 2) (f64.const nan) (i32.const 1)) (f64.const 2)) +;; (assert_return (invoke "select-f64-t" (f64.const 2) (f64.const nan:0x20304) (i32.const 1)) (f64.const 2)) +;; (assert_return (invoke "select-f64-t" (f64.const 2) (f64.const nan) (i32.const 0)) (f64.const nan)) +;; (assert_return (invoke "select-f64-t" (f64.const 2) (f64.const nan:0x20304) (i32.const 0)) (f64.const nan:0x20304)) + +(assert_return (invoke "as-select-first" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "as-select-first" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "as-select-mid" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-select-mid" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-select-last" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-select-last" (i32.const 1)) (i32.const 3)) + +(assert_return (invoke "as-loop-first" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-loop-first" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-loop-mid" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-loop-mid" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-loop-last" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-loop-last" (i32.const 1)) (i32.const 2)) + +(assert_return (invoke "as-if-condition" (i32.const 0))) +(assert_return (invoke "as-if-condition" (i32.const 1))) +(assert_return (invoke "as-if-then" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-if-then" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-if-else" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-if-else" (i32.const 1)) (i32.const 2)) + +(assert_return (invoke "as-br_if-first" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-br_if-first" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-br_if-last" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-br_if-last" (i32.const 1)) (i32.const 2)) + +(assert_return (invoke "as-br_table-first" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-br_table-first" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-br_table-last" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-br_table-last" (i32.const 1)) (i32.const 2)) + +;; W2C2: No support for multiple tables +;; (assert_return (invoke "as-call_indirect-first" (i32.const 0)) (i32.const 3)) +;; (assert_return (invoke "as-call_indirect-first" (i32.const 1)) (i32.const 2)) +;; (assert_return (invoke "as-call_indirect-mid" (i32.const 0)) (i32.const 1)) +;; (assert_return (invoke "as-call_indirect-mid" (i32.const 1)) (i32.const 1)) +;; (assert_trap (invoke "as-call_indirect-last" (i32.const 0)) "undefined element") +;; (assert_trap (invoke "as-call_indirect-last" (i32.const 1)) "undefined element") + +(assert_return (invoke "as-store-first" (i32.const 0))) +(assert_return (invoke "as-store-first" (i32.const 1))) +(assert_return (invoke "as-store-last" (i32.const 0))) +(assert_return (invoke "as-store-last" (i32.const 1))) + +(assert_return (invoke "as-memory.grow-value" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "as-memory.grow-value" (i32.const 1)) (i32.const 3)) + +(assert_return (invoke "as-call-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-call-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-return-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-return-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-drop-operand" (i32.const 0))) +(assert_return (invoke "as-drop-operand" (i32.const 1))) +(assert_return (invoke "as-br-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-br-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-local.set-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-local.set-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-local.tee-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-local.tee-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-global.set-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-global.set-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-load-operand" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "as-load-operand" (i32.const 1)) (i32.const 1)) + +(assert_return (invoke "as-unary-operand" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-unary-operand" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-binary-operand" (i32.const 0)) (i32.const 4)) +(assert_return (invoke "as-binary-operand" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-test-operand" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-test-operand" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-compare-left" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-compare-left" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-compare-right" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-compare-right" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-convert-operand" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-convert-operand" (i32.const 1)) (i32.const 1)) + +(assert_invalid + (module (func $arity-0-implicit (select (nop) (nop) (i32.const 1)))) + "type mismatch" +) +;; W2C2: No support for select with multiple return values +;; (assert_invalid +;; (module (func $arity-0 (select (result) (nop) (nop) (i32.const 1)))) +;; "invalid result arity" +;; ) +;; (assert_invalid +;; (module (func $arity-2 (result i32 i32) +;; (select (result i32 i32) +;; (i32.const 0) (i32.const 0) +;; (i32.const 0) (i32.const 0) +;; (i32.const 1) +;; ) +;; )) +;; "invalid result arity" +;; ) + +;; W2C2: No support for external references +;; (assert_invalid +;; (module (func $type-externref-implicit (param $r externref) +;; (drop (select (local.get $r) (local.get $r) (i32.const 1))) +;; )) +;; "type mismatch" +;; ) + +(assert_invalid + (module (func $type-num-vs-num + (drop (select (i32.const 1) (i64.const 1) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num + (drop (select (i32.const 1) (f32.const 1.0) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num + (drop (select (i32.const 1) (f64.const 1.0) (i32.const 1))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (f32.const 1.0) (i32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (f32.const 1.0) (i32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (f64.const 1.0) (i32.const 1)) (drop))) + "type mismatch" +) + + +(assert_invalid + (module + (func $type-1st-operand-empty + (select) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-2nd-operand-empty + (i32.const 0) (select) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-3rd-operand-empty + (i32.const 0) (i32.const 0) (select) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-1st-operand-empty-in-block + (i32.const 0) (i32.const 0) (i32.const 0) + (block (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-2nd-operand-empty-in-block + (i32.const 0) (i32.const 0) + (block (i32.const 0) (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-3rd-operand-empty-in-block + (i32.const 0) + (block (i32.const 0) (i32.const 0) (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-1st-operand-empty-in-loop + (i32.const 0) (i32.const 0) (i32.const 0) + (loop (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-2nd-operand-empty-in-loop + (i32.const 0) (i32.const 0) + (loop (i32.const 0) (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-3rd-operand-empty-in-loop + (i32.const 0) + (loop (i32.const 0) (i32.const 0) (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-1st-operand-empty-in-then + (i32.const 0) (i32.const 0) (i32.const 0) + (if (then (select) (drop))) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-2nd-operand-empty-in-then + (i32.const 0) (i32.const 0) + (if (then (i32.const 0) (select) (drop))) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-3rd-operand-empty-in-then + (i32.const 0) + (if (then (i32.const 0) (i32.const 0) (select) (drop))) + ) + ) + "type mismatch" +) + +;; Third operand must be i32 + +(assert_invalid + (module (func (select (i32.const 1) (i32.const 1) (i64.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func (select (i32.const 1) (i32.const 1) (f32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func (select (i32.const 1) (i32.const 1) (f64.const 1)) (drop))) + "type mismatch" +) + +;; Result of select has type of first two operands + +(assert_invalid + (module (func (result i32) (select (i64.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch" +) + + +;; Flat syntax + +(module + (table 1 funcref) + (func (result i32) unreachable select) + (func (result i32) unreachable select nop) + (func (result i32) unreachable select (select)) + (func (result i32) unreachable select select) + (func (result i32) unreachable select select select) + ;; W2C2: No support for select with multiple return values + ;; (func (result i32) unreachable select (result i32)) + ;; (func (result i32) unreachable select (result i32) (result)) + ;; (func (result i32) unreachable select (result i32) (result) select) + ;; (func (result i32) unreachable select (result) (result i32) select (result i32)) + (func (result i32) unreachable select call_indirect) + (func (result i32) unreachable select call_indirect select) +) diff --git a/tests/stack.wast b/tests/stack.wast index 06eb0c6..5da5043 100644 --- a/tests/stack.wast +++ b/tests/stack.wast @@ -156,6 +156,7 @@ (module (type $proc (func)) (table 1 funcref) + (func (block i32.const 0 call_indirect) (loop i32.const 0 call_indirect) @@ -193,6 +194,7 @@ (then i32.const 0 call_indirect (type $proc) (param) (param) (result)) (else i32.const 0 call_indirect (type $proc) (param) (result) (result)) ) + block i32.const 0 call_indirect end loop i32.const 0 call_indirect end i32.const 0 if i32.const 0 call_indirect end diff --git a/tests/start.wast b/tests/start.wast old mode 100755 new mode 100644 index a683cc4..bf88a6a --- a/tests/start.wast +++ b/tests/start.wast @@ -1,105 +1,105 @@ -(assert_invalid - (module (func) (start 1)) - "unknown function" -) - -(assert_invalid - (module - (func $main (result i32) (return (i32.const 0))) - (start $main) - ) - "start function" -) -(assert_invalid - (module - (func $main (param $a i32)) - (start $main) - ) - "start function" -) - -(module - (memory (data "A")) - (func $inc - (i32.store8 - (i32.const 0) - (i32.add - (i32.load8_u (i32.const 0)) - (i32.const 1) - ) - ) - ) - (func $get (result i32) - (return (i32.load8_u (i32.const 0))) - ) - (func $main - (call $inc) - (call $inc) - (call $inc) - ) - - (start $main) - (export "inc" (func $inc)) - (export "get" (func $get)) -) -(assert_return (invoke "get") (i32.const 68)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 69)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 70)) - -(module - (memory (data "A")) - (func $inc - (i32.store8 - (i32.const 0) - (i32.add - (i32.load8_u (i32.const 0)) - (i32.const 1) - ) - ) - ) - (func $get (result i32) - (return (i32.load8_u (i32.const 0))) - ) - (func $main - (call $inc) - (call $inc) - (call $inc) - ) - (start 2) - (export "inc" (func $inc)) - (export "get" (func $get)) -) -(assert_return (invoke "get") (i32.const 68)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 69)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 70)) - -(module - (func $print_i32 (import "spectest" "print_i32") (param i32)) - (func $main (call $print_i32 (i32.const 1))) - (start 1) -) - -(module - (func $print_i32 (import "spectest" "print_i32") (param i32)) - (func $main (call $print_i32 (i32.const 2))) - (start $main) -) - -(module - (func $print (import "spectest" "print")) - (start $print) -) - -(assert_trap - (module (func $main (unreachable)) (start $main)) - "unreachable" -) - -(assert_malformed - (module quote "(module (func $a (unreachable)) (func $b (unreachable)) (start $a) (start $b))") - "multiple start sections" -) +(assert_invalid + (module (func) (start 1)) + "unknown function" +) + +(assert_invalid + (module + (func $main (result i32) (return (i32.const 0))) + (start $main) + ) + "start function" +) +(assert_invalid + (module + (func $main (param $a i32)) + (start $main) + ) + "start function" +) + +(module + (memory (data "A")) + (func $inc + (i32.store8 + (i32.const 0) + (i32.add + (i32.load8_u (i32.const 0)) + (i32.const 1) + ) + ) + ) + (func $get (result i32) + (return (i32.load8_u (i32.const 0))) + ) + (func $main + (call $inc) + (call $inc) + (call $inc) + ) + + (start $main) + (export "inc" (func $inc)) + (export "get" (func $get)) +) +(assert_return (invoke "get") (i32.const 68)) +(invoke "inc") +(assert_return (invoke "get") (i32.const 69)) +(invoke "inc") +(assert_return (invoke "get") (i32.const 70)) + +(module + (memory (data "A")) + (func $inc + (i32.store8 + (i32.const 0) + (i32.add + (i32.load8_u (i32.const 0)) + (i32.const 1) + ) + ) + ) + (func $get (result i32) + (return (i32.load8_u (i32.const 0))) + ) + (func $main + (call $inc) + (call $inc) + (call $inc) + ) + (start 2) + (export "inc" (func $inc)) + (export "get" (func $get)) +) +(assert_return (invoke "get") (i32.const 68)) +(invoke "inc") +(assert_return (invoke "get") (i32.const 69)) +(invoke "inc") +(assert_return (invoke "get") (i32.const 70)) + +(module + (func $print_i32 (import "spectest" "print_i32") (param i32)) + (func $main (call $print_i32 (i32.const 1))) + (start 1) +) + +(module + (func $print_i32 (import "spectest" "print_i32") (param i32)) + (func $main (call $print_i32 (i32.const 2))) + (start $main) +) + +(module + (func $print (import "spectest" "print")) + (start $print) +) + +(assert_trap + (module (func $main (unreachable)) (start $main)) + "unreachable" +) + +(assert_malformed + (module quote "(module (func $a (unreachable)) (func $b (unreachable)) (start $a) (start $b))") + "multiple start sections" +) diff --git a/tests/type.wast b/tests/type.wast index 5ceeeb2..8572aaf 100644 --- a/tests/type.wast +++ b/tests/type.wast @@ -11,6 +11,7 @@ (type (func (param $x i32) (result i32))) (type (func (param f32 f64))) + ;; W2C2: No support for functions with multiple return values ;; (type (func (result i64 f32))) ;; (type (func (param i32 i64) (result f32 f64))) @@ -18,17 +19,20 @@ (type (func (param $x f32) (param f64))) (type (func (param f32) (param $y f64))) (type (func (param $x f32) (param $y f64))) + ;; W2C2: No support for functions with multiple return values ;; (type (func (result i64) (result f32))) ;; (type (func (param i32) (param i64) (result f32) (result f64))) ;; (type (func (param $x i32) (param $y i64) (result f32) (result f64))) (type (func (param f32 f64) (param $x i32) (param f64 i32 i32))) + ;; W2C2: No support for functions with multiple return values ;; (type (func (result i64 i64 f32) (result f32 i32))) ;; (type ;; (func (param i32 i32) (param i64 i32) (result f32 f64) (result f64 i32)) ;; ) (type (func (param) (param $x f32) (param) (param) (param f64 i32) (param))) + ;; W2C2: No support for functions with multiple return values ;; (type ;; (func (result) (result) (result i64 i64) (result) (result f32) (result)) ;; ) @@ -42,18 +46,9 @@ (assert_malformed (module quote "(type (func (result i32) (param i32)))") - "result before parameter" + "unexpected token" ) (assert_malformed (module quote "(type (func (result $x i32)))") "unexpected token" ) - -(assert_invalid - (module (type (func (result i32 i32)))) - "invalid result arity" -) -(assert_invalid - (module (type (func (result i32) (result i32)))) - "invalid result arity" -) diff --git a/tests/unreachable.wast b/tests/unreachable.wast new file mode 100644 index 0000000..19f661b --- /dev/null +++ b/tests/unreachable.wast @@ -0,0 +1,304 @@ +;; Test `unreachable` operator + +(module + ;; Auxiliary definitions + (func $dummy) + (func $dummy3 (param i32 i32 i32)) + + (func (export "type-i32") (result i32) (unreachable)) + (func (export "type-i64") (result i64) (unreachable)) + (func (export "type-f32") (result f32) (unreachable)) + (func (export "type-f64") (result f64) (unreachable)) + + (func (export "as-func-first") (result i32) + (unreachable) (i32.const -1) + ) + (func (export "as-func-mid") (result i32) + (call $dummy) (unreachable) (i32.const -1) + ) + (func (export "as-func-last") + (call $dummy) (unreachable) + ) + (func (export "as-func-value") (result i32) + (call $dummy) (unreachable) + ) + + (func (export "as-block-first") (result i32) + (block (result i32) (unreachable) (i32.const 2)) + ) + (func (export "as-block-mid") (result i32) + (block (result i32) (call $dummy) (unreachable) (i32.const 2)) + ) + (func (export "as-block-last") + (block (nop) (call $dummy) (unreachable)) + ) + (func (export "as-block-value") (result i32) + (block (result i32) (nop) (call $dummy) (unreachable)) + ) + (func (export "as-block-broke") (result i32) + (block (result i32) (call $dummy) (br 0 (i32.const 1)) (unreachable)) + ) + + (func (export "as-loop-first") (result i32) + (loop (result i32) (unreachable) (i32.const 2)) + ) + (func (export "as-loop-mid") (result i32) + (loop (result i32) (call $dummy) (unreachable) (i32.const 2)) + ) + (func (export "as-loop-last") + (loop (nop) (call $dummy) (unreachable)) + ) + (func (export "as-loop-broke") (result i32) + (block (result i32) + (loop (result i32) (call $dummy) (br 1 (i32.const 1)) (unreachable)) + ) + ) + + (func (export "as-br-value") (result i32) + (block (result i32) (br 0 (unreachable))) + ) + + (func (export "as-br_if-cond") + (block (br_if 0 (unreachable))) + ) + (func (export "as-br_if-value") (result i32) + (block (result i32) + (drop (br_if 0 (unreachable) (i32.const 1))) (i32.const 7) + ) + ) + (func (export "as-br_if-value-cond") (result i32) + (block (result i32) + (drop (br_if 0 (i32.const 6) (unreachable))) (i32.const 7) + ) + ) + + (func (export "as-br_table-index") + (block (br_table 0 0 0 (unreachable))) + ) + (func (export "as-br_table-value") (result i32) + (block (result i32) + (br_table 0 0 0 (unreachable) (i32.const 1)) (i32.const 7) + ) + ) + (func (export "as-br_table-value-2") (result i32) + (block (result i32) + (block (result i32) (br_table 0 1 (unreachable) (i32.const 1))) + ) + ) + (func (export "as-br_table-value-index") (result i32) + (block (result i32) + (br_table 0 0 (i32.const 6) (unreachable)) (i32.const 7) + ) + ) + (func (export "as-br_table-value-and-index") (result i32) + (block (result i32) (br_table 0 0 (unreachable)) (i32.const 8)) + ) + + (func (export "as-return-value") (result i64) + (return (unreachable)) + ) + + (func (export "as-if-cond") (result i32) + (if (result i32) (unreachable) (then (i32.const 0)) (else (i32.const 1))) + ) + (func (export "as-if-then") (param i32 i32) (result i32) + (if (result i32) (local.get 0) (then (unreachable)) (else (local.get 1))) + ) + (func (export "as-if-else") (param i32 i32) (result i32) + (if (result i32) (local.get 0) (then (local.get 1)) (else (unreachable))) + ) + (func (export "as-if-then-no-else") (param i32 i32) (result i32) + (if (local.get 0) (then (unreachable))) (local.get 1) + ) + + (func (export "as-select-first") (param i32 i32) (result i32) + (select (unreachable) (local.get 0) (local.get 1)) + ) + (func (export "as-select-second") (param i32 i32) (result i32) + (select (local.get 0) (unreachable) (local.get 1)) + ) + (func (export "as-select-cond") (result i32) + (select (i32.const 0) (i32.const 1) (unreachable)) + ) + + (func (export "as-call-first") + (call $dummy3 (unreachable) (i32.const 2) (i32.const 3)) + ) + (func (export "as-call-mid") + (call $dummy3 (i32.const 1) (unreachable) (i32.const 3)) + ) + (func (export "as-call-last") + (call $dummy3 (i32.const 1) (i32.const 2) (unreachable)) + ) + + (type $sig (func (param i32 i32 i32))) + (table funcref (elem $dummy3)) + (func (export "as-call_indirect-func") + (call_indirect (type $sig) + (unreachable) (i32.const 1) (i32.const 2) (i32.const 3) + ) + ) + (func (export "as-call_indirect-first") + (call_indirect (type $sig) + (i32.const 0) (unreachable) (i32.const 2) (i32.const 3) + ) + ) + (func (export "as-call_indirect-mid") + (call_indirect (type $sig) + (i32.const 0) (i32.const 1) (unreachable) (i32.const 3) + ) + ) + (func (export "as-call_indirect-last") + (call_indirect (type $sig) + (i32.const 0) (i32.const 1) (i32.const 2) (unreachable) + ) + ) + + (func (export "as-local.set-value") (local f32) + (local.set 0 (unreachable)) + ) + (func (export "as-local.tee-value") (result f32) (local f32) + (local.tee 0 (unreachable)) + ) + (global $a (mut f32) (f32.const 0)) + (func (export "as-global.set-value") (result f32) + (global.set $a (unreachable)) + ) + + (memory 1) + (func (export "as-load-address") (result f32) + (f32.load (unreachable)) + ) + (func (export "as-loadN-address") (result i64) + (i64.load8_s (unreachable)) + ) + + (func (export "as-store-address") + (f64.store (unreachable) (f64.const 7)) + ) + (func (export "as-store-value") + (i64.store (i32.const 2) (unreachable)) + ) + + (func (export "as-storeN-address") + (i32.store8 (unreachable) (i32.const 7)) + ) + (func (export "as-storeN-value") + (i64.store16 (i32.const 2) (unreachable)) + ) + + (func (export "as-unary-operand") (result f32) + (f32.neg (unreachable)) + ) + + (func (export "as-binary-left") (result i32) + (i32.add (unreachable) (i32.const 10)) + ) + (func (export "as-binary-right") (result i64) + (i64.sub (i64.const 10) (unreachable)) + ) + + (func (export "as-test-operand") (result i32) + (i32.eqz (unreachable)) + ) + + (func (export "as-compare-left") (result i32) + (f64.le (unreachable) (f64.const 10)) + ) + (func (export "as-compare-right") (result i32) + (f32.ne (f32.const 10) (unreachable)) + ) + + (func (export "as-convert-operand") (result i32) + (i32.wrap_i64 (unreachable)) + ) + + (func (export "as-memory.grow-size") (result i32) + (memory.grow (unreachable)) + ) +) + +(assert_trap (invoke "type-i32") "unreachable") +(assert_trap (invoke "type-i64") "unreachable") +(assert_trap (invoke "type-f32") "unreachable") +(assert_trap (invoke "type-f64") "unreachable") + +(assert_trap (invoke "as-func-first") "unreachable") +(assert_trap (invoke "as-func-mid") "unreachable") +(assert_trap (invoke "as-func-last") "unreachable") +(assert_trap (invoke "as-func-value") "unreachable") + +(assert_trap (invoke "as-block-first") "unreachable") +(assert_trap (invoke "as-block-mid") "unreachable") +(assert_trap (invoke "as-block-last") "unreachable") +(assert_trap (invoke "as-block-value") "unreachable") +(assert_return (invoke "as-block-broke") (i32.const 1)) + +(assert_trap (invoke "as-loop-first") "unreachable") +(assert_trap (invoke "as-loop-mid") "unreachable") +(assert_trap (invoke "as-loop-last") "unreachable") +(assert_return (invoke "as-loop-broke") (i32.const 1)) + +(assert_trap (invoke "as-br-value") "unreachable") + +(assert_trap (invoke "as-br_if-cond") "unreachable") +(assert_trap (invoke "as-br_if-value") "unreachable") +(assert_trap (invoke "as-br_if-value-cond") "unreachable") + +(assert_trap (invoke "as-br_table-index") "unreachable") +(assert_trap (invoke "as-br_table-value") "unreachable") +(assert_trap (invoke "as-br_table-value-2") "unreachable") +(assert_trap (invoke "as-br_table-value-index") "unreachable") +(assert_trap (invoke "as-br_table-value-and-index") "unreachable") + +(assert_trap (invoke "as-return-value") "unreachable") + +(assert_trap (invoke "as-if-cond") "unreachable") +(assert_trap (invoke "as-if-then" (i32.const 1) (i32.const 6)) "unreachable") +(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) +(assert_trap (invoke "as-if-else" (i32.const 0) (i32.const 6)) "unreachable") +(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) +(assert_trap (invoke "as-if-then-no-else" (i32.const 1) (i32.const 6)) "unreachable") +(assert_return (invoke "as-if-then-no-else" (i32.const 0) (i32.const 6)) (i32.const 6)) + +(assert_trap (invoke "as-select-first" (i32.const 0) (i32.const 6)) "unreachable") +(assert_trap (invoke "as-select-first" (i32.const 1) (i32.const 6)) "unreachable") +(assert_trap (invoke "as-select-second" (i32.const 0) (i32.const 6)) "unreachable") +(assert_trap (invoke "as-select-second" (i32.const 1) (i32.const 6)) "unreachable") +(assert_trap (invoke "as-select-cond") "unreachable") + +(assert_trap (invoke "as-call-first") "unreachable") +(assert_trap (invoke "as-call-mid") "unreachable") +(assert_trap (invoke "as-call-last") "unreachable") + +(assert_trap (invoke "as-call_indirect-func") "unreachable") +(assert_trap (invoke "as-call_indirect-first") "unreachable") +(assert_trap (invoke "as-call_indirect-mid") "unreachable") +(assert_trap (invoke "as-call_indirect-last") "unreachable") + +(assert_trap (invoke "as-local.set-value") "unreachable") +(assert_trap (invoke "as-local.tee-value") "unreachable") +(assert_trap (invoke "as-global.set-value") "unreachable") + +(assert_trap (invoke "as-load-address") "unreachable") +(assert_trap (invoke "as-loadN-address") "unreachable") + +(assert_trap (invoke "as-store-address") "unreachable") +(assert_trap (invoke "as-store-value") "unreachable") +(assert_trap (invoke "as-storeN-address") "unreachable") +(assert_trap (invoke "as-storeN-value") "unreachable") + +(assert_trap (invoke "as-unary-operand") "unreachable") + +(assert_trap (invoke "as-binary-left") "unreachable") +(assert_trap (invoke "as-binary-right") "unreachable") + +(assert_trap (invoke "as-test-operand") "unreachable") + +(assert_trap (invoke "as-compare-left") "unreachable") +(assert_trap (invoke "as-compare-right") "unreachable") + +(assert_trap (invoke "as-convert-operand") "unreachable") + +(assert_trap (invoke "as-memory.grow-size") "unreachable") + diff --git a/tests/unreached-invalid.wast b/tests/unreached-invalid.wast new file mode 100644 index 0000000..d3447f1 --- /dev/null +++ b/tests/unreached-invalid.wast @@ -0,0 +1,751 @@ +;; Failures in unreachable code. + +(assert_invalid + (module (func $local-index (unreachable) (drop (local.get 0)))) + "unknown local" +) +(assert_invalid + (module (func $global-index (unreachable) (drop (global.get 0)))) + "unknown global" +) +(assert_invalid + (module (func $func-index (unreachable) (call 1))) + "unknown function" +) +(assert_invalid + (module (func $label-index (unreachable) (br 1))) + "unknown label" +) + +(assert_invalid + (module (func $type-num-vs-num + (unreachable) (drop (i64.eqz (i32.const 0)))) + ) + "type mismatch" +) +(assert_invalid + (module (func $type-poly-num-vs-num (result i32) + (unreachable) (i64.const 0) (i32.const 0) (select) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-poly-transitive-num-vs-num (result i32) + (unreachable) + (i64.const 0) (i32.const 0) (select) + (i32.const 0) (i32.const 0) (select) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unconsumed-const (unreachable) (i32.const 0))) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-result (unreachable) (i32.eqz))) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-result2 + (unreachable) (i32.const 0) (i32.add) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-poly0 (unreachable) (select))) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-poly1 (unreachable) (i32.const 0) (select))) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-poly2 + (unreachable) (i32.const 0) (i32.const 0) (select) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-break + (block (br 0) (block (drop (i32.eqz (nop))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-break + (block (br 0) (drop (i32.eqz (f32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-break + (block (br 0) (block (drop (f32.eq (i32.const 1))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-break + (block (br 0) (drop (f32.eq (i32.const 1) (f32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-break + (block (br 0) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-break (result i32) + (block (result i32) (i32.const 1) (br 0) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-break + (block (loop (br 1) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-break (result i32) + (loop (result i32) (br 1 (i32.const 1)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-break + (br 0) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-break (result i32) + (br 0 (i32.const 1)) (f32.const 0) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-return + (return) (block (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-return + (return) (drop (i32.eqz (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-return + (return) (block (drop (f32.eq (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-return + (return) (drop (f32.eq (i32.const 1) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-return + (block (return) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-return (result i32) + (block (result i32) (i32.const 1) (return (i32.const 0)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-return + (block (loop (return) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-return (result i32) + (loop (result i32) (return (i32.const 1)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-return + (return) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-return (result i32) + (return (i32.const 1)) (f32.const 0) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-unreachable + (unreachable) (block (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-loop-after-unreachable + (unreachable) (loop (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-i32-loop-after-unreachable + (unreachable) (loop (result i32) (i32.eqz (nop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-unreachable + (unreachable) (drop (i32.eqz (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-unreachable + (unreachable) (block (drop (f32.eq (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-unreachable + (unreachable) (drop (f32.eq (i32.const 1) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-unreachable + (block (unreachable) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-unreachable (result i32) + (block (result i32) (i32.const 1) (unreachable) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-unreachable + (block (loop (unreachable) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-unreachable (result i32) + (loop (result i32) (unreachable) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-unreachable + (unreachable) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-unreachable (result i32) + (unreachable) (f32.const 0) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-if-after-unreachable + (unreachable) (if (i32.const 0) (then (drop (i32.eqz (nop))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-else-after-unreachable + (unreachable) (if (i32.const 0) (then (nop)) (else (drop (i32.eqz (nop))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-else-after-unreachable-if + (if (i32.const 0) (then (unreachable)) (else (drop (i32.eqz (nop))))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-nested-unreachable + (block (unreachable)) (block (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-nested-unreachable + (block (unreachable)) (drop (i32.eqz (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-nested-unreachable + (block (unreachable)) (block (drop (f32.eq (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-nested-unreachable + (block (unreachable)) (drop (f32.eq (i32.const 1) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-nested-unreachable + (block (block (unreachable)) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-nested-unreachable + (result i32) + (block (result i32) (i32.const 1) (block (unreachable)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-nested-unreachable + (block (loop (block (unreachable)) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-nested-unreachable + (result i32) + (loop (result i32) (block (unreachable)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-nested-unreachable + (block (unreachable)) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-nested-unreachable + (result i32) + (block (unreachable)) (f32.const 0) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-infinite-loop + (loop (br 0)) (block (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-infinite-loop + (loop (br 0)) (drop (i32.eqz (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-infinite-loop + (loop (br 0)) (block (drop (f32.eq (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-infinite-loop + (loop (br 0)) (drop (f32.eq (i32.const 1) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-infinite-loop + (block (loop (br 0)) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-infinite-loop (result i32) + (block (result i32) (i32.const 1) (loop (br 0)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-infinite-loop + (block (loop (loop (br 0)) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-infinite-loop (result i32) + (loop (result i32) (loop (br 0)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-infinite-loop + (loop (br 0)) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-infinite-loop (result i32) + (loop (br 0)) (f32.const 0) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-in-dead-body + (if (i32.const 0) (then (drop (i32.eqz (nop))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-in-dead-body + (if (i32.const 0) (then (drop (i32.eqz (f32.const 1))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-in-dead-body + (if (i32.const 0) (then (drop (f32.eq (i32.const 1))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-in-dead-body + (if (i32.const 0) (then (drop (f32.eq (i32.const 1) (f32.const 0))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-if-value-num-vs-void-in-dead-body + (if (i32.const 0) (then (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-if-value-num-vs-num-in-dead-body (result i32) + (if (result i32) (i32.const 0) (then (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-in-dead-body + (if (i32.const 0) (then (block (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-in-dead-body (result i32) + (if (result i32) (i32.const 0) (then (block (result i32) (f32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-in-dead-body + (if (i32.const 0) (then (loop (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-in-dead-body (result i32) + (if (result i32) (i32.const 0) (then (loop (result i32) (f32.const 0)))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-return-second-num-vs-num (result i32) + (return (i32.const 1)) (return (f64.const 1)) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-br-second-num-vs-num (result i32) + (block (result i32) (br 0 (i32.const 1)) (br 0 (f64.const 1))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-br_if-cond-num-vs-num-after-unreachable + (block (br_if 0 (unreachable) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_if-num-vs-void-after-unreachable (result i32) + (block (result i32) + (block (unreachable) (br_if 1 (i32.const 0) (i32.const 0))) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_if-num-vs-num-after-unreachable (result i32) + (block (result i32) + (block (result f32) (unreachable) (br_if 1 (i32.const 0) (i32.const 0))) + (drop) (i32.const 0) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_if-num2-vs-num-after-unreachable (result i32) + (block (result i32) + (unreachable) (br_if 0 (i32.const 0) (i32.const 0)) (i32.const 0) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_table-num-vs-num-after-unreachable + (block (br_table 0 (unreachable) (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_table-label-num-vs-num-after-unreachable (result i32) + (block (result i32) (unreachable) (br_table 0 (f32.const 0) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_table-label-num-vs-label-void-after-unreachable + (block + (block (result f32) + (unreachable) + (br_table 0 1 0 (i32.const 1)) + ) + (drop) + ) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-block-value-nested-unreachable-num-vs-void + (block (i32.const 3) (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-unreachable-void-vs-num (result i32) + (block (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-unreachable-num-vs-num (result i32) + (block (result i64) (i64.const 0) (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-unreachable-num2-vs-void (result i32) + (block (i32.const 3) (block (i64.const 1) (unreachable))) (i32.const 9) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-block-value-nested-br-num-vs-void + (block (i32.const 3) (block (br 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-br-void-vs-num (result i32) + (block (result i32) (block (br 1 (i32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-br-num-vs-num (result i32) + (block (result i32) (i64.const 0) (block (br 1 (i32.const 0)))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-block-value-nested2-br-num-vs-void + (block (block (i32.const 3) (block (br 2)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested2-br-void-vs-num (result i32) + (block (result i32) (block (block (br 2 (i32.const 0))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested2-br-num-vs-num (result i32) + (block (result i32) + (block (result i64) (i64.const 0) (block (br 2 (i32.const 0)))) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested2-br-num2-vs-void (result i32) + (block (i32.const 3) (block (i64.const 1) (br 1))) (i32.const 9) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-block-value-nested-return-num-vs-void + (block (i32.const 3) (block (return))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-return-void-vs-num (result i32) + (block (block (return (i32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-return-num-vs-num (result i32) + (block (result i64) (i64.const 0) (block (return (i32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-return-num2-vs-void (result i32) + (block (i32.const 3) (block (i64.const 1) (return (i32.const 0)))) + (i32.const 9) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-loop-value-nested-unreachable-num-vs-void + (loop (i32.const 3) (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-nested-unreachable-void-vs-num (result i32) + (loop (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-nested-unreachable-num-vs-num (result i32) + (loop (result i64) (i64.const 0) (block (unreachable))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-cont-last-void-vs-empty (result i32) + (loop (br 0 (nop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-cont-last-num-vs-empty (result i32) + (loop (br 0 (i32.const 0))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $tee-local-unreachable-value + (local i32) + (local.tee 0 (unreachable)) + )) + "type mismatch" +) +(assert_invalid + (module (func $br_if-unreachable (result i32) + (block (result i32) + (block + (br_if 1 (unreachable) (i32.const 0)) + ) + (i32.const 0) + ) + )) + "type mismatch" +) +(assert_invalid + (module + (func $type-br_if-after-unreachable (result i64) + unreachable + br_if 0 + i64.extend_i32_u + ) + ) + "type mismatch" +) + +;; The first two operands should have the same type as each other +(assert_invalid + (module (func (unreachable) (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) + "type mismatch" +) + +(assert_invalid + (module (func (unreachable) (select (i64.const 1) (i32.const 1) (i32.const 1)) (drop))) + "type mismatch" +) + +;; Third operand must be i32 +(assert_invalid + (module (func (unreachable) (select (i32.const 1) (i32.const 1) (i64.const 1)) (drop))) + "type mismatch" +) + +(assert_invalid + (module (func (unreachable) (select (i32.const 1) (i64.const 1)) (drop))) + "type mismatch" +) + +(assert_invalid + (module (func (unreachable) (select (i64.const 1)) (drop))) + "type mismatch" +) + +;; Result of select has type of first two operands (type of second operand when first one is omitted) +(assert_invalid + (module (func (result i32) (unreachable) (select (i64.const 1) (i32.const 1)))) + "type mismatch" +) + + +;; select always has non-empty result +(assert_invalid + (module (func (unreachable) (select))) + "type mismatch" +) + +;; W2C2: No support for external references +;; (assert_invalid +;; (module (func $meet-bottom (param i32) (result externref) +;; (block $l1 (result externref) +;; (drop +;; (block $l2 (result i32) +;; (br_table $l2 $l1 $l2 (ref.null extern) (local.get 0)) +;; ) +;; ) +;; (ref.null extern) +;; ) +;; )) +;; "type mismatch" +;; ) + diff --git a/tests/unreached-valid.wast b/tests/unreached-valid.wast new file mode 100644 index 0000000..c68d8c0 --- /dev/null +++ b/tests/unreached-valid.wast @@ -0,0 +1,64 @@ +(module + + ;; Check that both sides of the select are evaluated + (func (export "select-trap-left") (param $cond i32) (result i32) + (select (unreachable) (i32.const 0) (local.get $cond)) + ) + (func (export "select-trap-right") (param $cond i32) (result i32) + (select (i32.const 0) (unreachable) (local.get $cond)) + ) + + (func (export "select-unreached") + (unreachable) (select) + (unreachable) (i32.const 0) (select) + (unreachable) (i32.const 0) (i32.const 0) (select) + (unreachable) (i32.const 0) (i32.const 0) (i32.const 0) (select) + (unreachable) (f32.const 0) (i32.const 0) (select) + (unreachable) + ) + + (func (export "select_unreached_result_1") (result i32) + (unreachable) (i32.add (select)) + ) + + (func (export "select_unreached_result_2") (result i64) + (unreachable) (i64.add (select (i64.const 0) (i32.const 0))) + ) + + (func (export "unreachable-num") + (unreachable) + (select) + (i32.eqz) + (drop) + ) + ;; W2C2: No support for reference types + ;; (func (export "unreachable-ref") + ;; (unreachable) + ;; (select) + ;; (ref.is_null) + ;; (drop) + ;; ) +) + +(assert_trap (invoke "select-trap-left" (i32.const 1)) "unreachable") +(assert_trap (invoke "select-trap-left" (i32.const 0)) "unreachable") +(assert_trap (invoke "select-trap-right" (i32.const 1)) "unreachable") +(assert_trap (invoke "select-trap-right" (i32.const 0)) "unreachable") + +;; Validation after unreachable + +(module + (func (export "meet-bottom") + (block (result f64) + (block (result f32) + (unreachable) + (br_table 0 1 1 (i32.const 1)) + ) + (drop) + (f64.const 0) + ) + (drop) + ) +) + +(assert_trap (invoke "meet-bottom") "unreachable") From 594b9be9b6f3b698ee04ddb65a7284ebbd5207d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Sun, 13 Oct 2024 19:03:31 -0700 Subject: [PATCH 07/11] fix reading of data segments kind is LEB128, not just a single byte --- w2c2/reader.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/w2c2/reader.c b/w2c2/reader.c index 061cf47..38529cd 100644 --- a/w2c2/reader.c +++ b/w2c2/reader.c @@ -1527,14 +1527,14 @@ wasmReadDataSegment( WasmDataSegment* result, WasmModuleReaderError** error ) { - U8 kind = 0; + U32 kind = 0; bool readMemoryIndex = false; bool readOffsetExpression = false; U32 memoryIndex = 0; Buffer offset = {NULL, 0}; Buffer bytes = {NULL, 0}; - if (!bufferReadByte(&reader->buffer, &kind)) { + if (!leb128ReadU32(&reader->buffer, &kind)) { static WasmModuleReaderError wasmModuleReaderError = { wasmModuleReaderInvalidDataSectionKind }; @@ -1744,7 +1744,7 @@ wasmReadElementSegment( U32 functionIndexCount; U32* functionIndices; - /* Read element count */ + /* Read table index */ if (leb128ReadU32(&reader->buffer, &tableIndex) == 0) { static WasmModuleReaderError wasmModuleReaderError = { wasmModuleReaderInvalidElementSectionTableIndex From 1bccf6c04868fdceaee454e123efc90114f1049e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Sun, 13 Oct 2024 20:43:54 -0700 Subject: [PATCH 08/11] test numbers have shifted --- ...{test_float_exprs.87.hppa.out => test_float_exprs.89.hppa.out} | 0 ...{test_float_exprs.87.i386.out => test_float_exprs.89.i386.out} | 0 ...{test_float_exprs.87.mips.out => test_float_exprs.89.mips.out} | 0 ...t_float_exprs.87.mips64.out => test_float_exprs.89.mips64.out} | 0 ...oat_exprs.87.mips64el.out => test_float_exprs.89.mips64el.out} | 0 ...t_float_exprs.87.mipsel.out => test_float_exprs.89.mipsel.out} | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename tests/{test_float_exprs.87.hppa.out => test_float_exprs.89.hppa.out} (100%) rename tests/{test_float_exprs.87.i386.out => test_float_exprs.89.i386.out} (100%) rename tests/{test_float_exprs.87.mips.out => test_float_exprs.89.mips.out} (100%) rename tests/{test_float_exprs.87.mips64.out => test_float_exprs.89.mips64.out} (100%) rename tests/{test_float_exprs.87.mips64el.out => test_float_exprs.89.mips64el.out} (100%) rename tests/{test_float_exprs.87.mipsel.out => test_float_exprs.89.mipsel.out} (100%) diff --git a/tests/test_float_exprs.87.hppa.out b/tests/test_float_exprs.89.hppa.out similarity index 100% rename from tests/test_float_exprs.87.hppa.out rename to tests/test_float_exprs.89.hppa.out diff --git a/tests/test_float_exprs.87.i386.out b/tests/test_float_exprs.89.i386.out similarity index 100% rename from tests/test_float_exprs.87.i386.out rename to tests/test_float_exprs.89.i386.out diff --git a/tests/test_float_exprs.87.mips.out b/tests/test_float_exprs.89.mips.out similarity index 100% rename from tests/test_float_exprs.87.mips.out rename to tests/test_float_exprs.89.mips.out diff --git a/tests/test_float_exprs.87.mips64.out b/tests/test_float_exprs.89.mips64.out similarity index 100% rename from tests/test_float_exprs.87.mips64.out rename to tests/test_float_exprs.89.mips64.out diff --git a/tests/test_float_exprs.87.mips64el.out b/tests/test_float_exprs.89.mips64el.out similarity index 100% rename from tests/test_float_exprs.87.mips64el.out rename to tests/test_float_exprs.89.mips64el.out diff --git a/tests/test_float_exprs.87.mipsel.out b/tests/test_float_exprs.89.mipsel.out similarity index 100% rename from tests/test_float_exprs.87.mipsel.out rename to tests/test_float_exprs.89.mipsel.out From 23ead16eace6c7beabd3959f38d9e2e0285578b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Sun, 13 Oct 2024 21:05:50 -0700 Subject: [PATCH 09/11] fix test names --- tests/test_float_exprs.89.hppa.out | 2 +- tests/test_float_exprs.89.i386.out | 2 +- tests/test_float_exprs.89.mips.out | 2 +- tests/test_float_exprs.89.mips64.out | 2 +- tests/test_float_exprs.89.mips64el.out | 2 +- tests/test_float_exprs.89.mipsel.out | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_float_exprs.89.hppa.out b/tests/test_float_exprs.89.hppa.out index 062f869..f99ed80 100644 --- a/tests/test_float_exprs.89.hppa.out +++ b/tests/test_float_exprs.89.hppa.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2141192192 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2141192192 != 2143289344 diff --git a/tests/test_float_exprs.89.i386.out b/tests/test_float_exprs.89.i386.out index 74d6cd2..920d895 100644 --- a/tests/test_float_exprs.89.i386.out +++ b/tests/test_float_exprs.89.i386.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm OK: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u) OK: f32.canonical_nan_bitpattern(0u, 0u) OK: f32.canonical_nan_bitpattern(2143289344u, 2143289344u) diff --git a/tests/test_float_exprs.89.mips.out b/tests/test_float_exprs.89.mips.out index f5b629f..74f76b2 100644 --- a/tests/test_float_exprs.89.mips.out +++ b/tests/test_float_exprs.89.mips.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2143289343 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2143289343 != 2143289344 diff --git a/tests/test_float_exprs.89.mips64.out b/tests/test_float_exprs.89.mips64.out index f5b629f..74f76b2 100644 --- a/tests/test_float_exprs.89.mips64.out +++ b/tests/test_float_exprs.89.mips64.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2143289343 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2143289343 != 2143289344 diff --git a/tests/test_float_exprs.89.mips64el.out b/tests/test_float_exprs.89.mips64el.out index f5b629f..74f76b2 100644 --- a/tests/test_float_exprs.89.mips64el.out +++ b/tests/test_float_exprs.89.mips64el.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2143289343 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2143289343 != 2143289344 diff --git a/tests/test_float_exprs.89.mipsel.out b/tests/test_float_exprs.89.mipsel.out index f5b629f..74f76b2 100644 --- a/tests/test_float_exprs.89.mipsel.out +++ b/tests/test_float_exprs.89.mipsel.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2143289343 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2143289343 != 2143289344 From 968d8a205474b65857a6a688b8c8bde620023f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Sun, 13 Oct 2024 21:50:06 -0700 Subject: [PATCH 10/11] fix expectations --- tests/test_conversions.0.ppc64le.out | 12 ++++++------ tests/test_float_literals.0.i386.out | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/tests/test_conversions.0.ppc64le.out b/tests/test_conversions.0.ppc64le.out index 522b1e3..aab9e36 100644 --- a/tests/test_conversions.0.ppc64le.out +++ b/tests/test_conversions.0.ppc64le.out @@ -140,6 +140,12 @@ OK: i64.trunc_f64_u(-0.9999999999999999) OK: i64.trunc_f64_u(100000000.0) OK: i64.trunc_f64_u(1e+16) OK: i64.trunc_f64_u(9.223372036854776e+18) +OK: f32.convert_i32_s(1u) +OK: f32.convert_i32_s(4294967295u) +OK: f32.convert_i32_s(0u) +OK: f32.convert_i32_s(2147483647u) +OK: f32.convert_i32_s(2147483648u) +OK: f32.convert_i32_s(1234567890u) OK: i32.trunc_sat_f32_s(0.0) OK: i32.trunc_sat_f32_s(-0.0) OK: i32.trunc_sat_f32_s(1.401298464324817e-45) @@ -288,12 +294,6 @@ OK: i64.trunc_sat_f64_u(1.8446744073709552e+19) OK: i64.trunc_sat_f64_u(-1.0) OK: i64.trunc_sat_f64_u(INFINITY) OK: i64.trunc_sat_f64_u(-INFINITY) -OK: f32.convert_i32_s(1u) -OK: f32.convert_i32_s(4294967295u) -OK: f32.convert_i32_s(0u) -OK: f32.convert_i32_s(2147483647u) -OK: f32.convert_i32_s(2147483648u) -OK: f32.convert_i32_s(1234567890u) OK: f32.convert_i32_s(16777217u) OK: f32.convert_i32_s(4278190079u) OK: f32.convert_i32_s(16777219u) diff --git a/tests/test_float_literals.0.i386.out b/tests/test_float_literals.0.i386.out index 05cf8e8..8502568 100644 --- a/tests/test_float_literals.0.i386.out +++ b/tests/test_float_literals.0.i386.out @@ -20,6 +20,10 @@ OK: f32.min_normal() OK: f32.max_subnormal() OK: f32.max_finite() OK: f32.trailing_dot() +OK: f32.misc_int() +OK: f32.large_int() +OK: f32.min_int32() +OK: f32.min_int64() OK: f32_dec.zero() OK: f32_dec.positive_zero() OK: f32_dec.negative_zero() @@ -30,6 +34,10 @@ OK: f32_dec.max_subnormal() OK: f32_dec.max_finite() OK: f32_dec.trailing_dot() OK: f32_dec.root_beer_float() +OK: f32_dec.misc_int() +OK: f32_dec.large_int() +OK: f32_dec.min_int32() +OK: f32_dec.min_int64() OK: f64.all_ones_nan() FAIL: f64.misc_nan(): 9221140253039434428 != 9218888453225749180 FAIL: f64.misc_positive_nan(): 9221969081593694217 != 9219717281780008969 @@ -46,6 +54,10 @@ OK: f64.min_normal() OK: f64.max_subnormal() OK: f64.max_finite() OK: f64.trailing_dot() +OK: f64.misc_int() +OK: f64.large_int() +OK: f64.min_int32() +OK: f64.min_int64() OK: f64_dec.zero() OK: f64_dec.positive_zero() OK: f64_dec.negative_zero() @@ -56,6 +68,10 @@ OK: f64_dec.max_subnormal() OK: f64_dec.max_finite() OK: f64_dec.trailing_dot() OK: f64_dec.root_beer_float() +OK: f64_dec.misc_int() +OK: f64_dec.large_int() +OK: f64_dec.min_int32() +OK: f64_dec.min_int64() OK: f32-dec-sep1() OK: f32-dec-sep2() OK: f32-dec-sep3() From fc14584c6ddf25203e3aeab699cfb7424fd8d700 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20M=C3=BCller?= Date: Sun, 13 Oct 2024 22:06:37 -0700 Subject: [PATCH 11/11] fix test expectations --- tests/test_float_misc.0.i386.out | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/test_float_misc.0.i386.out b/tests/test_float_misc.0.i386.out index 321a510..8d3ec2a 100644 --- a/tests/test_float_misc.0.i386.out +++ b/tests/test_float_misc.0.i386.out @@ -378,6 +378,36 @@ OK: f32.sqrt(0.9999998807907104) OK: f32.sqrt(0.9999998211860657) OK: f64.sqrt(0.9999999999999998) OK: f64.sqrt(0.9999999999999997) +OK: f32.sqrt(0.2499999850988388) +OK: f32.sqrt(0.25) +OK: f32.sqrt(0.2500000298023224) +OK: f32.sqrt(0.2500000596046448) +OK: f64.sqrt(0.24999999999999997) +OK: f64.sqrt(0.25) +OK: f64.sqrt(0.25000000000000006) +OK: f64.sqrt(0.2500000000000001) +OK: f32.sqrt(272331603968.0) +OK: f64.sqrt(272331606109.83676) +OK: f32.sqrt(10616005632.0) +OK: f32.sqrt(3014768273129472.0) +OK: f32.sqrt(24597323841536.0) +OK: f32.sqrt(1234567936.0) +OK: f64.sqrt(10616005156.0) +OK: f64.sqrt(3014768326492836.0) +OK: f64.sqrt(24597324665761.0) +OK: f64.sqrt(1234567891.0) +OK: f32.sqrt(0.5158079862594604) +OK: f32.sqrt(0.5028960704803467) +OK: f64.sqrt(0.5158079862594604) +OK: f64.sqrt(0.5028960704803467) +OK: f32.sqrt(9.0) +OK: f32.sqrt(137.0) +OK: f32.sqrt(1.7737711668014526) +OK: f32.sqrt(1000.0) +OK: f64.sqrt(9.0) +OK: f64.sqrt(137.0) +OK: f64.sqrt(1.7737712281864233) +OK: f64.sqrt(1000.0) OK: f32.ceil(0.9999999403953552) OK: f32.ceil(1.0000001192092896) OK: f64.ceil(0.9999999999999999)