summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/spec/spec/i32.wast.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/spec/spec/i32.wast.js')
-rw-r--r--js/src/jit-test/tests/wasm/spec/spec/i32.wast.js1967
1 files changed, 1967 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/spec/spec/i32.wast.js b/js/src/jit-test/tests/wasm/spec/spec/i32.wast.js
new file mode 100644
index 0000000000..b7455c08b1
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/spec/spec/i32.wast.js
@@ -0,0 +1,1967 @@
+/* Copyright 2021 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// ./test/core/i32.wast
+
+// ./test/core/i32.wast:3
+let $0 = instantiate(`(module
+ (func (export "add") (param $$x i32) (param $$y i32) (result i32) (i32.add (local.get $$x) (local.get $$y)))
+ (func (export "sub") (param $$x i32) (param $$y i32) (result i32) (i32.sub (local.get $$x) (local.get $$y)))
+ (func (export "mul") (param $$x i32) (param $$y i32) (result i32) (i32.mul (local.get $$x) (local.get $$y)))
+ (func (export "div_s") (param $$x i32) (param $$y i32) (result i32) (i32.div_s (local.get $$x) (local.get $$y)))
+ (func (export "div_u") (param $$x i32) (param $$y i32) (result i32) (i32.div_u (local.get $$x) (local.get $$y)))
+ (func (export "rem_s") (param $$x i32) (param $$y i32) (result i32) (i32.rem_s (local.get $$x) (local.get $$y)))
+ (func (export "rem_u") (param $$x i32) (param $$y i32) (result i32) (i32.rem_u (local.get $$x) (local.get $$y)))
+ (func (export "and") (param $$x i32) (param $$y i32) (result i32) (i32.and (local.get $$x) (local.get $$y)))
+ (func (export "or") (param $$x i32) (param $$y i32) (result i32) (i32.or (local.get $$x) (local.get $$y)))
+ (func (export "xor") (param $$x i32) (param $$y i32) (result i32) (i32.xor (local.get $$x) (local.get $$y)))
+ (func (export "shl") (param $$x i32) (param $$y i32) (result i32) (i32.shl (local.get $$x) (local.get $$y)))
+ (func (export "shr_s") (param $$x i32) (param $$y i32) (result i32) (i32.shr_s (local.get $$x) (local.get $$y)))
+ (func (export "shr_u") (param $$x i32) (param $$y i32) (result i32) (i32.shr_u (local.get $$x) (local.get $$y)))
+ (func (export "rotl") (param $$x i32) (param $$y i32) (result i32) (i32.rotl (local.get $$x) (local.get $$y)))
+ (func (export "rotr") (param $$x i32) (param $$y i32) (result i32) (i32.rotr (local.get $$x) (local.get $$y)))
+ (func (export "clz") (param $$x i32) (result i32) (i32.clz (local.get $$x)))
+ (func (export "ctz") (param $$x i32) (result i32) (i32.ctz (local.get $$x)))
+ (func (export "popcnt") (param $$x i32) (result i32) (i32.popcnt (local.get $$x)))
+ (func (export "extend8_s") (param $$x i32) (result i32) (i32.extend8_s (local.get $$x)))
+ (func (export "extend16_s") (param $$x i32) (result i32) (i32.extend16_s (local.get $$x)))
+ (func (export "eqz") (param $$x i32) (result i32) (i32.eqz (local.get $$x)))
+ (func (export "eq") (param $$x i32) (param $$y i32) (result i32) (i32.eq (local.get $$x) (local.get $$y)))
+ (func (export "ne") (param $$x i32) (param $$y i32) (result i32) (i32.ne (local.get $$x) (local.get $$y)))
+ (func (export "lt_s") (param $$x i32) (param $$y i32) (result i32) (i32.lt_s (local.get $$x) (local.get $$y)))
+ (func (export "lt_u") (param $$x i32) (param $$y i32) (result i32) (i32.lt_u (local.get $$x) (local.get $$y)))
+ (func (export "le_s") (param $$x i32) (param $$y i32) (result i32) (i32.le_s (local.get $$x) (local.get $$y)))
+ (func (export "le_u") (param $$x i32) (param $$y i32) (result i32) (i32.le_u (local.get $$x) (local.get $$y)))
+ (func (export "gt_s") (param $$x i32) (param $$y i32) (result i32) (i32.gt_s (local.get $$x) (local.get $$y)))
+ (func (export "gt_u") (param $$x i32) (param $$y i32) (result i32) (i32.gt_u (local.get $$x) (local.get $$y)))
+ (func (export "ge_s") (param $$x i32) (param $$y i32) (result i32) (i32.ge_s (local.get $$x) (local.get $$y)))
+ (func (export "ge_u") (param $$x i32) (param $$y i32) (result i32) (i32.ge_u (local.get $$x) (local.get $$y)))
+)`);
+
+// ./test/core/i32.wast:37
+assert_return(() => invoke($0, `add`, [1, 1]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:38
+assert_return(() => invoke($0, `add`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:39
+assert_return(() => invoke($0, `add`, [-1, -1]), [value("i32", -2)]);
+
+// ./test/core/i32.wast:40
+assert_return(() => invoke($0, `add`, [-1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:41
+assert_return(() => invoke($0, `add`, [2147483647, 1]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:42
+assert_return(() => invoke($0, `add`, [-2147483648, -1]), [value("i32", 2147483647)]);
+
+// ./test/core/i32.wast:43
+assert_return(() => invoke($0, `add`, [-2147483648, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:44
+assert_return(() => invoke($0, `add`, [1073741823, 1]), [value("i32", 1073741824)]);
+
+// ./test/core/i32.wast:46
+assert_return(() => invoke($0, `sub`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:47
+assert_return(() => invoke($0, `sub`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:48
+assert_return(() => invoke($0, `sub`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:49
+assert_return(() => invoke($0, `sub`, [2147483647, -1]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:50
+assert_return(() => invoke($0, `sub`, [-2147483648, 1]), [value("i32", 2147483647)]);
+
+// ./test/core/i32.wast:51
+assert_return(() => invoke($0, `sub`, [-2147483648, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:52
+assert_return(() => invoke($0, `sub`, [1073741823, -1]), [value("i32", 1073741824)]);
+
+// ./test/core/i32.wast:54
+assert_return(() => invoke($0, `mul`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:55
+assert_return(() => invoke($0, `mul`, [1, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:56
+assert_return(() => invoke($0, `mul`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:57
+assert_return(() => invoke($0, `mul`, [268435456, 4096]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:58
+assert_return(() => invoke($0, `mul`, [-2147483648, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:59
+assert_return(() => invoke($0, `mul`, [-2147483648, -1]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:60
+assert_return(() => invoke($0, `mul`, [2147483647, -1]), [value("i32", -2147483647)]);
+
+// ./test/core/i32.wast:61
+assert_return(() => invoke($0, `mul`, [19088743, 1985229328]), [value("i32", 898528368)]);
+
+// ./test/core/i32.wast:62
+assert_return(() => invoke($0, `mul`, [2147483647, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:64
+assert_trap(() => invoke($0, `div_s`, [1, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:65
+assert_trap(() => invoke($0, `div_s`, [0, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:66
+assert_trap(() => invoke($0, `div_s`, [-2147483648, -1]), `integer overflow`);
+
+// ./test/core/i32.wast:67
+assert_trap(() => invoke($0, `div_s`, [-2147483648, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:68
+assert_return(() => invoke($0, `div_s`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:69
+assert_return(() => invoke($0, `div_s`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:70
+assert_return(() => invoke($0, `div_s`, [0, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:71
+assert_return(() => invoke($0, `div_s`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:72
+assert_return(() => invoke($0, `div_s`, [-2147483648, 2]), [value("i32", -1073741824)]);
+
+// ./test/core/i32.wast:73
+assert_return(() => invoke($0, `div_s`, [-2147483647, 1000]), [value("i32", -2147483)]);
+
+// ./test/core/i32.wast:74
+assert_return(() => invoke($0, `div_s`, [5, 2]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:75
+assert_return(() => invoke($0, `div_s`, [-5, 2]), [value("i32", -2)]);
+
+// ./test/core/i32.wast:76
+assert_return(() => invoke($0, `div_s`, [5, -2]), [value("i32", -2)]);
+
+// ./test/core/i32.wast:77
+assert_return(() => invoke($0, `div_s`, [-5, -2]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:78
+assert_return(() => invoke($0, `div_s`, [7, 3]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:79
+assert_return(() => invoke($0, `div_s`, [-7, 3]), [value("i32", -2)]);
+
+// ./test/core/i32.wast:80
+assert_return(() => invoke($0, `div_s`, [7, -3]), [value("i32", -2)]);
+
+// ./test/core/i32.wast:81
+assert_return(() => invoke($0, `div_s`, [-7, -3]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:82
+assert_return(() => invoke($0, `div_s`, [11, 5]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:83
+assert_return(() => invoke($0, `div_s`, [17, 7]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:85
+assert_trap(() => invoke($0, `div_u`, [1, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:86
+assert_trap(() => invoke($0, `div_u`, [0, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:87
+assert_return(() => invoke($0, `div_u`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:88
+assert_return(() => invoke($0, `div_u`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:89
+assert_return(() => invoke($0, `div_u`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:90
+assert_return(() => invoke($0, `div_u`, [-2147483648, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:91
+assert_return(() => invoke($0, `div_u`, [-2147483648, 2]), [value("i32", 1073741824)]);
+
+// ./test/core/i32.wast:92
+assert_return(() => invoke($0, `div_u`, [-1880092688, 65537]), [value("i32", 36847)]);
+
+// ./test/core/i32.wast:93
+assert_return(() => invoke($0, `div_u`, [-2147483647, 1000]), [value("i32", 2147483)]);
+
+// ./test/core/i32.wast:94
+assert_return(() => invoke($0, `div_u`, [5, 2]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:95
+assert_return(() => invoke($0, `div_u`, [-5, 2]), [value("i32", 2147483645)]);
+
+// ./test/core/i32.wast:96
+assert_return(() => invoke($0, `div_u`, [5, -2]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:97
+assert_return(() => invoke($0, `div_u`, [-5, -2]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:98
+assert_return(() => invoke($0, `div_u`, [7, 3]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:99
+assert_return(() => invoke($0, `div_u`, [11, 5]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:100
+assert_return(() => invoke($0, `div_u`, [17, 7]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:102
+assert_trap(() => invoke($0, `rem_s`, [1, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:103
+assert_trap(() => invoke($0, `rem_s`, [0, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:104
+assert_return(() => invoke($0, `rem_s`, [2147483647, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:105
+assert_return(() => invoke($0, `rem_s`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:106
+assert_return(() => invoke($0, `rem_s`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:107
+assert_return(() => invoke($0, `rem_s`, [0, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:108
+assert_return(() => invoke($0, `rem_s`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:109
+assert_return(() => invoke($0, `rem_s`, [-2147483648, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:110
+assert_return(() => invoke($0, `rem_s`, [-2147483648, 2]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:111
+assert_return(() => invoke($0, `rem_s`, [-2147483647, 1000]), [value("i32", -647)]);
+
+// ./test/core/i32.wast:112
+assert_return(() => invoke($0, `rem_s`, [5, 2]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:113
+assert_return(() => invoke($0, `rem_s`, [-5, 2]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:114
+assert_return(() => invoke($0, `rem_s`, [5, -2]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:115
+assert_return(() => invoke($0, `rem_s`, [-5, -2]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:116
+assert_return(() => invoke($0, `rem_s`, [7, 3]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:117
+assert_return(() => invoke($0, `rem_s`, [-7, 3]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:118
+assert_return(() => invoke($0, `rem_s`, [7, -3]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:119
+assert_return(() => invoke($0, `rem_s`, [-7, -3]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:120
+assert_return(() => invoke($0, `rem_s`, [11, 5]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:121
+assert_return(() => invoke($0, `rem_s`, [17, 7]), [value("i32", 3)]);
+
+// ./test/core/i32.wast:123
+assert_trap(() => invoke($0, `rem_u`, [1, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:124
+assert_trap(() => invoke($0, `rem_u`, [0, 0]), `integer divide by zero`);
+
+// ./test/core/i32.wast:125
+assert_return(() => invoke($0, `rem_u`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:126
+assert_return(() => invoke($0, `rem_u`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:127
+assert_return(() => invoke($0, `rem_u`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:128
+assert_return(() => invoke($0, `rem_u`, [-2147483648, -1]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:129
+assert_return(() => invoke($0, `rem_u`, [-2147483648, 2]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:130
+assert_return(() => invoke($0, `rem_u`, [-1880092688, 65537]), [value("i32", 32769)]);
+
+// ./test/core/i32.wast:131
+assert_return(() => invoke($0, `rem_u`, [-2147483647, 1000]), [value("i32", 649)]);
+
+// ./test/core/i32.wast:132
+assert_return(() => invoke($0, `rem_u`, [5, 2]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:133
+assert_return(() => invoke($0, `rem_u`, [-5, 2]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:134
+assert_return(() => invoke($0, `rem_u`, [5, -2]), [value("i32", 5)]);
+
+// ./test/core/i32.wast:135
+assert_return(() => invoke($0, `rem_u`, [-5, -2]), [value("i32", -5)]);
+
+// ./test/core/i32.wast:136
+assert_return(() => invoke($0, `rem_u`, [7, 3]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:137
+assert_return(() => invoke($0, `rem_u`, [11, 5]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:138
+assert_return(() => invoke($0, `rem_u`, [17, 7]), [value("i32", 3)]);
+
+// ./test/core/i32.wast:140
+assert_return(() => invoke($0, `and`, [1, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:141
+assert_return(() => invoke($0, `and`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:142
+assert_return(() => invoke($0, `and`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:143
+assert_return(() => invoke($0, `and`, [0, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:144
+assert_return(() => invoke($0, `and`, [2147483647, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:145
+assert_return(() => invoke($0, `and`, [2147483647, -1]), [value("i32", 2147483647)]);
+
+// ./test/core/i32.wast:146
+assert_return(() => invoke($0, `and`, [-252641281, -3856]), [value("i32", -252645136)]);
+
+// ./test/core/i32.wast:147
+assert_return(() => invoke($0, `and`, [-1, -1]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:149
+assert_return(() => invoke($0, `or`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:150
+assert_return(() => invoke($0, `or`, [0, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:151
+assert_return(() => invoke($0, `or`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:152
+assert_return(() => invoke($0, `or`, [0, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:153
+assert_return(() => invoke($0, `or`, [2147483647, -2147483648]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:154
+assert_return(() => invoke($0, `or`, [-2147483648, 0]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:155
+assert_return(() => invoke($0, `or`, [-252641281, -3856]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:156
+assert_return(() => invoke($0, `or`, [-1, -1]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:158
+assert_return(() => invoke($0, `xor`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:159
+assert_return(() => invoke($0, `xor`, [0, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:160
+assert_return(() => invoke($0, `xor`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:161
+assert_return(() => invoke($0, `xor`, [0, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:162
+assert_return(() => invoke($0, `xor`, [2147483647, -2147483648]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:163
+assert_return(() => invoke($0, `xor`, [-2147483648, 0]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:164
+assert_return(() => invoke($0, `xor`, [-1, -2147483648]), [value("i32", 2147483647)]);
+
+// ./test/core/i32.wast:165
+assert_return(() => invoke($0, `xor`, [-1, 2147483647]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:166
+assert_return(() => invoke($0, `xor`, [-252641281, -3856]), [value("i32", 252645135)]);
+
+// ./test/core/i32.wast:167
+assert_return(() => invoke($0, `xor`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:169
+assert_return(() => invoke($0, `shl`, [1, 1]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:170
+assert_return(() => invoke($0, `shl`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:171
+assert_return(() => invoke($0, `shl`, [2147483647, 1]), [value("i32", -2)]);
+
+// ./test/core/i32.wast:172
+assert_return(() => invoke($0, `shl`, [-1, 1]), [value("i32", -2)]);
+
+// ./test/core/i32.wast:173
+assert_return(() => invoke($0, `shl`, [-2147483648, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:174
+assert_return(() => invoke($0, `shl`, [1073741824, 1]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:175
+assert_return(() => invoke($0, `shl`, [1, 31]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:176
+assert_return(() => invoke($0, `shl`, [1, 32]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:177
+assert_return(() => invoke($0, `shl`, [1, 33]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:178
+assert_return(() => invoke($0, `shl`, [1, -1]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:179
+assert_return(() => invoke($0, `shl`, [1, 2147483647]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:181
+assert_return(() => invoke($0, `shr_s`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:182
+assert_return(() => invoke($0, `shr_s`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:183
+assert_return(() => invoke($0, `shr_s`, [-1, 1]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:184
+assert_return(() => invoke($0, `shr_s`, [2147483647, 1]), [value("i32", 1073741823)]);
+
+// ./test/core/i32.wast:185
+assert_return(() => invoke($0, `shr_s`, [-2147483648, 1]), [value("i32", -1073741824)]);
+
+// ./test/core/i32.wast:186
+assert_return(() => invoke($0, `shr_s`, [1073741824, 1]), [value("i32", 536870912)]);
+
+// ./test/core/i32.wast:187
+assert_return(() => invoke($0, `shr_s`, [1, 32]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:188
+assert_return(() => invoke($0, `shr_s`, [1, 33]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:189
+assert_return(() => invoke($0, `shr_s`, [1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:190
+assert_return(() => invoke($0, `shr_s`, [1, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:191
+assert_return(() => invoke($0, `shr_s`, [1, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:192
+assert_return(() => invoke($0, `shr_s`, [-2147483648, 31]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:193
+assert_return(() => invoke($0, `shr_s`, [-1, 32]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:194
+assert_return(() => invoke($0, `shr_s`, [-1, 33]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:195
+assert_return(() => invoke($0, `shr_s`, [-1, -1]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:196
+assert_return(() => invoke($0, `shr_s`, [-1, 2147483647]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:197
+assert_return(() => invoke($0, `shr_s`, [-1, -2147483648]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:199
+assert_return(() => invoke($0, `shr_u`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:200
+assert_return(() => invoke($0, `shr_u`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:201
+assert_return(() => invoke($0, `shr_u`, [-1, 1]), [value("i32", 2147483647)]);
+
+// ./test/core/i32.wast:202
+assert_return(() => invoke($0, `shr_u`, [2147483647, 1]), [value("i32", 1073741823)]);
+
+// ./test/core/i32.wast:203
+assert_return(() => invoke($0, `shr_u`, [-2147483648, 1]), [value("i32", 1073741824)]);
+
+// ./test/core/i32.wast:204
+assert_return(() => invoke($0, `shr_u`, [1073741824, 1]), [value("i32", 536870912)]);
+
+// ./test/core/i32.wast:205
+assert_return(() => invoke($0, `shr_u`, [1, 32]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:206
+assert_return(() => invoke($0, `shr_u`, [1, 33]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:207
+assert_return(() => invoke($0, `shr_u`, [1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:208
+assert_return(() => invoke($0, `shr_u`, [1, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:209
+assert_return(() => invoke($0, `shr_u`, [1, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:210
+assert_return(() => invoke($0, `shr_u`, [-2147483648, 31]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:211
+assert_return(() => invoke($0, `shr_u`, [-1, 32]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:212
+assert_return(() => invoke($0, `shr_u`, [-1, 33]), [value("i32", 2147483647)]);
+
+// ./test/core/i32.wast:213
+assert_return(() => invoke($0, `shr_u`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:214
+assert_return(() => invoke($0, `shr_u`, [-1, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:215
+assert_return(() => invoke($0, `shr_u`, [-1, -2147483648]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:217
+assert_return(() => invoke($0, `rotl`, [1, 1]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:218
+assert_return(() => invoke($0, `rotl`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:219
+assert_return(() => invoke($0, `rotl`, [-1, 1]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:220
+assert_return(() => invoke($0, `rotl`, [1, 32]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:221
+assert_return(() => invoke($0, `rotl`, [-1412589450, 1]), [value("i32", 1469788397)]);
+
+// ./test/core/i32.wast:222
+assert_return(() => invoke($0, `rotl`, [-33498112, 4]), [value("i32", -535969777)]);
+
+// ./test/core/i32.wast:223
+assert_return(() => invoke($0, `rotl`, [-1329474845, 5]), [value("i32", 406477942)]);
+
+// ./test/core/i32.wast:224
+assert_return(() => invoke($0, `rotl`, [32768, 37]), [value("i32", 1048576)]);
+
+// ./test/core/i32.wast:225
+assert_return(() => invoke($0, `rotl`, [-1329474845, 65285]), [value("i32", 406477942)]);
+
+// ./test/core/i32.wast:226
+assert_return(() => invoke($0, `rotl`, [1989852383, -19]), [value("i32", 1469837011)]);
+
+// ./test/core/i32.wast:227
+assert_return(() => invoke($0, `rotl`, [1989852383, -2147483635]), [value("i32", 1469837011)]);
+
+// ./test/core/i32.wast:228
+assert_return(() => invoke($0, `rotl`, [1, 31]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:229
+assert_return(() => invoke($0, `rotl`, [-2147483648, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:231
+assert_return(() => invoke($0, `rotr`, [1, 1]), [value("i32", -2147483648)]);
+
+// ./test/core/i32.wast:232
+assert_return(() => invoke($0, `rotr`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:233
+assert_return(() => invoke($0, `rotr`, [-1, 1]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:234
+assert_return(() => invoke($0, `rotr`, [1, 32]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:235
+assert_return(() => invoke($0, `rotr`, [-16724992, 1]), [value("i32", 2139121152)]);
+
+// ./test/core/i32.wast:236
+assert_return(() => invoke($0, `rotr`, [524288, 4]), [value("i32", 32768)]);
+
+// ./test/core/i32.wast:237
+assert_return(() => invoke($0, `rotr`, [-1329474845, 5]), [value("i32", 495324823)]);
+
+// ./test/core/i32.wast:238
+assert_return(() => invoke($0, `rotr`, [32768, 37]), [value("i32", 1024)]);
+
+// ./test/core/i32.wast:239
+assert_return(() => invoke($0, `rotr`, [-1329474845, 65285]), [value("i32", 495324823)]);
+
+// ./test/core/i32.wast:240
+assert_return(() => invoke($0, `rotr`, [1989852383, -19]), [value("i32", -419711787)]);
+
+// ./test/core/i32.wast:241
+assert_return(() => invoke($0, `rotr`, [1989852383, -2147483635]), [value("i32", -419711787)]);
+
+// ./test/core/i32.wast:242
+assert_return(() => invoke($0, `rotr`, [1, 31]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:243
+assert_return(() => invoke($0, `rotr`, [-2147483648, 31]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:245
+assert_return(() => invoke($0, `clz`, [-1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:246
+assert_return(() => invoke($0, `clz`, [0]), [value("i32", 32)]);
+
+// ./test/core/i32.wast:247
+assert_return(() => invoke($0, `clz`, [32768]), [value("i32", 16)]);
+
+// ./test/core/i32.wast:248
+assert_return(() => invoke($0, `clz`, [255]), [value("i32", 24)]);
+
+// ./test/core/i32.wast:249
+assert_return(() => invoke($0, `clz`, [-2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:250
+assert_return(() => invoke($0, `clz`, [1]), [value("i32", 31)]);
+
+// ./test/core/i32.wast:251
+assert_return(() => invoke($0, `clz`, [2]), [value("i32", 30)]);
+
+// ./test/core/i32.wast:252
+assert_return(() => invoke($0, `clz`, [2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:254
+assert_return(() => invoke($0, `ctz`, [-1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:255
+assert_return(() => invoke($0, `ctz`, [0]), [value("i32", 32)]);
+
+// ./test/core/i32.wast:256
+assert_return(() => invoke($0, `ctz`, [32768]), [value("i32", 15)]);
+
+// ./test/core/i32.wast:257
+assert_return(() => invoke($0, `ctz`, [65536]), [value("i32", 16)]);
+
+// ./test/core/i32.wast:258
+assert_return(() => invoke($0, `ctz`, [-2147483648]), [value("i32", 31)]);
+
+// ./test/core/i32.wast:259
+assert_return(() => invoke($0, `ctz`, [2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:261
+assert_return(() => invoke($0, `popcnt`, [-1]), [value("i32", 32)]);
+
+// ./test/core/i32.wast:262
+assert_return(() => invoke($0, `popcnt`, [0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:263
+assert_return(() => invoke($0, `popcnt`, [32768]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:264
+assert_return(() => invoke($0, `popcnt`, [-2147450880]), [value("i32", 2)]);
+
+// ./test/core/i32.wast:265
+assert_return(() => invoke($0, `popcnt`, [2147483647]), [value("i32", 31)]);
+
+// ./test/core/i32.wast:266
+assert_return(() => invoke($0, `popcnt`, [-1431655766]), [value("i32", 16)]);
+
+// ./test/core/i32.wast:267
+assert_return(() => invoke($0, `popcnt`, [1431655765]), [value("i32", 16)]);
+
+// ./test/core/i32.wast:268
+assert_return(() => invoke($0, `popcnt`, [-559038737]), [value("i32", 24)]);
+
+// ./test/core/i32.wast:270
+assert_return(() => invoke($0, `extend8_s`, [0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:271
+assert_return(() => invoke($0, `extend8_s`, [127]), [value("i32", 127)]);
+
+// ./test/core/i32.wast:272
+assert_return(() => invoke($0, `extend8_s`, [128]), [value("i32", -128)]);
+
+// ./test/core/i32.wast:273
+assert_return(() => invoke($0, `extend8_s`, [255]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:274
+assert_return(() => invoke($0, `extend8_s`, [19088640]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:275
+assert_return(() => invoke($0, `extend8_s`, [-19088768]), [value("i32", -128)]);
+
+// ./test/core/i32.wast:276
+assert_return(() => invoke($0, `extend8_s`, [-1]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:278
+assert_return(() => invoke($0, `extend16_s`, [0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:279
+assert_return(() => invoke($0, `extend16_s`, [32767]), [value("i32", 32767)]);
+
+// ./test/core/i32.wast:280
+assert_return(() => invoke($0, `extend16_s`, [32768]), [value("i32", -32768)]);
+
+// ./test/core/i32.wast:281
+assert_return(() => invoke($0, `extend16_s`, [65535]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:282
+assert_return(() => invoke($0, `extend16_s`, [19070976]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:283
+assert_return(() => invoke($0, `extend16_s`, [-19103744]), [value("i32", -32768)]);
+
+// ./test/core/i32.wast:284
+assert_return(() => invoke($0, `extend16_s`, [-1]), [value("i32", -1)]);
+
+// ./test/core/i32.wast:286
+assert_return(() => invoke($0, `eqz`, [0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:287
+assert_return(() => invoke($0, `eqz`, [1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:288
+assert_return(() => invoke($0, `eqz`, [-2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:289
+assert_return(() => invoke($0, `eqz`, [2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:290
+assert_return(() => invoke($0, `eqz`, [-1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:292
+assert_return(() => invoke($0, `eq`, [0, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:293
+assert_return(() => invoke($0, `eq`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:294
+assert_return(() => invoke($0, `eq`, [-1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:295
+assert_return(() => invoke($0, `eq`, [-2147483648, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:296
+assert_return(() => invoke($0, `eq`, [2147483647, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:297
+assert_return(() => invoke($0, `eq`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:298
+assert_return(() => invoke($0, `eq`, [1, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:299
+assert_return(() => invoke($0, `eq`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:300
+assert_return(() => invoke($0, `eq`, [-2147483648, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:301
+assert_return(() => invoke($0, `eq`, [0, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:302
+assert_return(() => invoke($0, `eq`, [-2147483648, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:303
+assert_return(() => invoke($0, `eq`, [-1, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:304
+assert_return(() => invoke($0, `eq`, [-2147483648, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:305
+assert_return(() => invoke($0, `eq`, [2147483647, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:307
+assert_return(() => invoke($0, `ne`, [0, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:308
+assert_return(() => invoke($0, `ne`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:309
+assert_return(() => invoke($0, `ne`, [-1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:310
+assert_return(() => invoke($0, `ne`, [-2147483648, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:311
+assert_return(() => invoke($0, `ne`, [2147483647, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:312
+assert_return(() => invoke($0, `ne`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:313
+assert_return(() => invoke($0, `ne`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:314
+assert_return(() => invoke($0, `ne`, [0, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:315
+assert_return(() => invoke($0, `ne`, [-2147483648, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:316
+assert_return(() => invoke($0, `ne`, [0, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:317
+assert_return(() => invoke($0, `ne`, [-2147483648, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:318
+assert_return(() => invoke($0, `ne`, [-1, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:319
+assert_return(() => invoke($0, `ne`, [-2147483648, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:320
+assert_return(() => invoke($0, `ne`, [2147483647, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:322
+assert_return(() => invoke($0, `lt_s`, [0, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:323
+assert_return(() => invoke($0, `lt_s`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:324
+assert_return(() => invoke($0, `lt_s`, [-1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:325
+assert_return(() => invoke($0, `lt_s`, [-2147483648, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:326
+assert_return(() => invoke($0, `lt_s`, [2147483647, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:327
+assert_return(() => invoke($0, `lt_s`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:328
+assert_return(() => invoke($0, `lt_s`, [1, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:329
+assert_return(() => invoke($0, `lt_s`, [0, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:330
+assert_return(() => invoke($0, `lt_s`, [-2147483648, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:331
+assert_return(() => invoke($0, `lt_s`, [0, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:332
+assert_return(() => invoke($0, `lt_s`, [-2147483648, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:333
+assert_return(() => invoke($0, `lt_s`, [-1, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:334
+assert_return(() => invoke($0, `lt_s`, [-2147483648, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:335
+assert_return(() => invoke($0, `lt_s`, [2147483647, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:337
+assert_return(() => invoke($0, `lt_u`, [0, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:338
+assert_return(() => invoke($0, `lt_u`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:339
+assert_return(() => invoke($0, `lt_u`, [-1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:340
+assert_return(() => invoke($0, `lt_u`, [-2147483648, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:341
+assert_return(() => invoke($0, `lt_u`, [2147483647, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:342
+assert_return(() => invoke($0, `lt_u`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:343
+assert_return(() => invoke($0, `lt_u`, [1, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:344
+assert_return(() => invoke($0, `lt_u`, [0, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:345
+assert_return(() => invoke($0, `lt_u`, [-2147483648, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:346
+assert_return(() => invoke($0, `lt_u`, [0, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:347
+assert_return(() => invoke($0, `lt_u`, [-2147483648, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:348
+assert_return(() => invoke($0, `lt_u`, [-1, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:349
+assert_return(() => invoke($0, `lt_u`, [-2147483648, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:350
+assert_return(() => invoke($0, `lt_u`, [2147483647, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:352
+assert_return(() => invoke($0, `le_s`, [0, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:353
+assert_return(() => invoke($0, `le_s`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:354
+assert_return(() => invoke($0, `le_s`, [-1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:355
+assert_return(() => invoke($0, `le_s`, [-2147483648, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:356
+assert_return(() => invoke($0, `le_s`, [2147483647, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:357
+assert_return(() => invoke($0, `le_s`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:358
+assert_return(() => invoke($0, `le_s`, [1, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:359
+assert_return(() => invoke($0, `le_s`, [0, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:360
+assert_return(() => invoke($0, `le_s`, [-2147483648, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:361
+assert_return(() => invoke($0, `le_s`, [0, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:362
+assert_return(() => invoke($0, `le_s`, [-2147483648, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:363
+assert_return(() => invoke($0, `le_s`, [-1, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:364
+assert_return(() => invoke($0, `le_s`, [-2147483648, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:365
+assert_return(() => invoke($0, `le_s`, [2147483647, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:367
+assert_return(() => invoke($0, `le_u`, [0, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:368
+assert_return(() => invoke($0, `le_u`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:369
+assert_return(() => invoke($0, `le_u`, [-1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:370
+assert_return(() => invoke($0, `le_u`, [-2147483648, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:371
+assert_return(() => invoke($0, `le_u`, [2147483647, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:372
+assert_return(() => invoke($0, `le_u`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:373
+assert_return(() => invoke($0, `le_u`, [1, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:374
+assert_return(() => invoke($0, `le_u`, [0, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:375
+assert_return(() => invoke($0, `le_u`, [-2147483648, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:376
+assert_return(() => invoke($0, `le_u`, [0, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:377
+assert_return(() => invoke($0, `le_u`, [-2147483648, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:378
+assert_return(() => invoke($0, `le_u`, [-1, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:379
+assert_return(() => invoke($0, `le_u`, [-2147483648, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:380
+assert_return(() => invoke($0, `le_u`, [2147483647, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:382
+assert_return(() => invoke($0, `gt_s`, [0, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:383
+assert_return(() => invoke($0, `gt_s`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:384
+assert_return(() => invoke($0, `gt_s`, [-1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:385
+assert_return(() => invoke($0, `gt_s`, [-2147483648, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:386
+assert_return(() => invoke($0, `gt_s`, [2147483647, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:387
+assert_return(() => invoke($0, `gt_s`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:388
+assert_return(() => invoke($0, `gt_s`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:389
+assert_return(() => invoke($0, `gt_s`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:390
+assert_return(() => invoke($0, `gt_s`, [-2147483648, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:391
+assert_return(() => invoke($0, `gt_s`, [0, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:392
+assert_return(() => invoke($0, `gt_s`, [-2147483648, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:393
+assert_return(() => invoke($0, `gt_s`, [-1, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:394
+assert_return(() => invoke($0, `gt_s`, [-2147483648, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:395
+assert_return(() => invoke($0, `gt_s`, [2147483647, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:397
+assert_return(() => invoke($0, `gt_u`, [0, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:398
+assert_return(() => invoke($0, `gt_u`, [1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:399
+assert_return(() => invoke($0, `gt_u`, [-1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:400
+assert_return(() => invoke($0, `gt_u`, [-2147483648, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:401
+assert_return(() => invoke($0, `gt_u`, [2147483647, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:402
+assert_return(() => invoke($0, `gt_u`, [-1, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:403
+assert_return(() => invoke($0, `gt_u`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:404
+assert_return(() => invoke($0, `gt_u`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:405
+assert_return(() => invoke($0, `gt_u`, [-2147483648, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:406
+assert_return(() => invoke($0, `gt_u`, [0, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:407
+assert_return(() => invoke($0, `gt_u`, [-2147483648, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:408
+assert_return(() => invoke($0, `gt_u`, [-1, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:409
+assert_return(() => invoke($0, `gt_u`, [-2147483648, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:410
+assert_return(() => invoke($0, `gt_u`, [2147483647, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:412
+assert_return(() => invoke($0, `ge_s`, [0, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:413
+assert_return(() => invoke($0, `ge_s`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:414
+assert_return(() => invoke($0, `ge_s`, [-1, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:415
+assert_return(() => invoke($0, `ge_s`, [-2147483648, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:416
+assert_return(() => invoke($0, `ge_s`, [2147483647, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:417
+assert_return(() => invoke($0, `ge_s`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:418
+assert_return(() => invoke($0, `ge_s`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:419
+assert_return(() => invoke($0, `ge_s`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:420
+assert_return(() => invoke($0, `ge_s`, [-2147483648, 0]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:421
+assert_return(() => invoke($0, `ge_s`, [0, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:422
+assert_return(() => invoke($0, `ge_s`, [-2147483648, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:423
+assert_return(() => invoke($0, `ge_s`, [-1, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:424
+assert_return(() => invoke($0, `ge_s`, [-2147483648, 2147483647]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:425
+assert_return(() => invoke($0, `ge_s`, [2147483647, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:427
+assert_return(() => invoke($0, `ge_u`, [0, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:428
+assert_return(() => invoke($0, `ge_u`, [1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:429
+assert_return(() => invoke($0, `ge_u`, [-1, 1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:430
+assert_return(() => invoke($0, `ge_u`, [-2147483648, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:431
+assert_return(() => invoke($0, `ge_u`, [2147483647, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:432
+assert_return(() => invoke($0, `ge_u`, [-1, -1]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:433
+assert_return(() => invoke($0, `ge_u`, [1, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:434
+assert_return(() => invoke($0, `ge_u`, [0, 1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:435
+assert_return(() => invoke($0, `ge_u`, [-2147483648, 0]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:436
+assert_return(() => invoke($0, `ge_u`, [0, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:437
+assert_return(() => invoke($0, `ge_u`, [-2147483648, -1]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:438
+assert_return(() => invoke($0, `ge_u`, [-1, -2147483648]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:439
+assert_return(() => invoke($0, `ge_u`, [-2147483648, 2147483647]), [value("i32", 1)]);
+
+// ./test/core/i32.wast:440
+assert_return(() => invoke($0, `ge_u`, [2147483647, -2147483648]), [value("i32", 0)]);
+
+// ./test/core/i32.wast:443
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty
+ (i32.eqz) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:451
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-block
+ (i32.const 0)
+ (block (i32.eqz) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:460
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-loop
+ (i32.const 0)
+ (loop (i32.eqz) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:469
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-if
+ (i32.const 0) (i32.const 0)
+ (if (then (i32.eqz) (drop)))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:478
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-else
+ (i32.const 0) (i32.const 0)
+ (if (result i32) (then (i32.const 0)) (else (i32.eqz))) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:487
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-br
+ (i32.const 0)
+ (block (br 0 (i32.eqz)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:496
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-br_if
+ (i32.const 0)
+ (block (br_if 0 (i32.eqz) (i32.const 1)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:505
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-br_table
+ (i32.const 0)
+ (block (br_table 0 (i32.eqz)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:514
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-return
+ (return (i32.eqz)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:522
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-select
+ (select (i32.eqz) (i32.const 1) (i32.const 2)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:530
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-call
+ (call 1 (i32.eqz)) (drop)
+ )
+ (func (param i32) (result i32) (local.get 0))
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:539
+assert_invalid(
+ () => instantiate(`(module
+ (func $$f (param i32) (result i32) (local.get 0))
+ (type $$sig (func (param i32) (result i32)))
+ (table funcref (elem $$f))
+ (func $$type-unary-operand-empty-in-call_indirect
+ (block (result i32)
+ (call_indirect (type $$sig)
+ (i32.eqz) (i32.const 0)
+ )
+ (drop)
+ )
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:555
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-local.set
+ (local i32)
+ (local.set 0 (i32.eqz)) (local.get 0) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:564
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-unary-operand-empty-in-local.tee
+ (local i32)
+ (local.tee 0 (i32.eqz)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:573
+assert_invalid(
+ () => instantiate(`(module
+ (global $$x (mut i32) (i32.const 0))
+ (func $$type-unary-operand-empty-in-global.set
+ (global.set $$x (i32.eqz)) (global.get $$x) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:582
+assert_invalid(
+ () => instantiate(`(module
+ (memory 0)
+ (func $$type-unary-operand-empty-in-memory.grow
+ (memory.grow (i32.eqz)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:591
+assert_invalid(
+ () => instantiate(`(module
+ (memory 0)
+ (func $$type-unary-operand-empty-in-load
+ (i32.load (i32.eqz)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:600
+assert_invalid(
+ () => instantiate(`(module
+ (memory 1)
+ (func $$type-unary-operand-empty-in-store
+ (i32.store (i32.eqz) (i32.const 1))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:610
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty
+ (i32.add) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:618
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty
+ (i32.const 0) (i32.add) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:626
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-block
+ (i32.const 0) (i32.const 0)
+ (block (i32.add) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:635
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-block
+ (i32.const 0)
+ (block (i32.const 0) (i32.add) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:644
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-loop
+ (i32.const 0) (i32.const 0)
+ (loop (i32.add) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:653
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-loop
+ (i32.const 0)
+ (loop (i32.const 0) (i32.add) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:662
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-if
+ (i32.const 0) (i32.const 0) (i32.const 0)
+ (if (i32.add) (then (drop)))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:671
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-if
+ (i32.const 0) (i32.const 0)
+ (if (i32.const 0) (then (i32.add)) (else (drop)))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:680
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-else
+ (i32.const 0) (i32.const 0) (i32.const 0)
+ (if (result i32) (then (i32.const 0)) (else (i32.add) (i32.const 0)))
+ (drop) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:690
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-else
+ (i32.const 0) (i32.const 0)
+ (if (result i32) (then (i32.const 0)) (else (i32.add)))
+ (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:700
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-br
+ (i32.const 0) (i32.const 0)
+ (block (br 0 (i32.add)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:709
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-br
+ (i32.const 0)
+ (block (br 0 (i32.const 0) (i32.add)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:718
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-br_if
+ (i32.const 0) (i32.const 0)
+ (block (br_if 0 (i32.add) (i32.const 1)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:727
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-br_if
+ (i32.const 0)
+ (block (br_if 0 (i32.const 0) (i32.add) (i32.const 1)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:736
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-br_table
+ (i32.const 0) (i32.const 0)
+ (block (br_table 0 (i32.add)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:745
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-br_table
+ (i32.const 0)
+ (block (br_table 0 (i32.const 0) (i32.add)) (drop))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:754
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-return
+ (return (i32.add)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:762
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-return
+ (return (i32.const 0) (i32.add)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:770
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-select
+ (select (i32.add) (i32.const 1) (i32.const 2)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:778
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-select
+ (select (i32.const 0) (i32.add) (i32.const 1) (i32.const 2)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:786
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-call
+ (call 1 (i32.add)) (drop)
+ )
+ (func (param i32 i32) (result i32) (local.get 0))
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:795
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-call
+ (call 1 (i32.const 0) (i32.add)) (drop)
+ )
+ (func (param i32 i32) (result i32) (local.get 0))
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:804
+assert_invalid(
+ () => instantiate(`(module
+ (func $$f (param i32) (result i32) (local.get 0))
+ (type $$sig (func (param i32) (result i32)))
+ (table funcref (elem $$f))
+ (func $$type-binary-1st-operand-empty-in-call_indirect
+ (block (result i32)
+ (call_indirect (type $$sig)
+ (i32.add) (i32.const 0)
+ )
+ (drop)
+ )
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:820
+assert_invalid(
+ () => instantiate(`(module
+ (func $$f (param i32) (result i32) (local.get 0))
+ (type $$sig (func (param i32) (result i32)))
+ (table funcref (elem $$f))
+ (func $$type-binary-2nd-operand-empty-in-call_indirect
+ (block (result i32)
+ (call_indirect (type $$sig)
+ (i32.const 0) (i32.add) (i32.const 0)
+ )
+ (drop)
+ )
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:836
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-local.set
+ (local i32)
+ (local.set 0 (i32.add)) (local.get 0) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:845
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-local.set
+ (local i32)
+ (local.set 0 (i32.const 0) (i32.add)) (local.get 0) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:854
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-1st-operand-empty-in-local.tee
+ (local i32)
+ (local.tee 0 (i32.add)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:863
+assert_invalid(
+ () => instantiate(`(module
+ (func $$type-binary-2nd-operand-empty-in-local.tee
+ (local i32)
+ (local.tee 0 (i32.const 0) (i32.add)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:872
+assert_invalid(
+ () => instantiate(`(module
+ (global $$x (mut i32) (i32.const 0))
+ (func $$type-binary-1st-operand-empty-in-global.set
+ (global.set $$x (i32.add)) (global.get $$x) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:881
+assert_invalid(
+ () => instantiate(`(module
+ (global $$x (mut i32) (i32.const 0))
+ (func $$type-binary-2nd-operand-empty-in-global.set
+ (global.set $$x (i32.const 0) (i32.add)) (global.get $$x) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:890
+assert_invalid(
+ () => instantiate(`(module
+ (memory 0)
+ (func $$type-binary-1st-operand-empty-in-memory.grow
+ (memory.grow (i32.add)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:899
+assert_invalid(
+ () => instantiate(`(module
+ (memory 0)
+ (func $$type-binary-2nd-operand-empty-in-memory.grow
+ (memory.grow (i32.const 0) (i32.add)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:908
+assert_invalid(
+ () => instantiate(`(module
+ (memory 0)
+ (func $$type-binary-1st-operand-empty-in-load
+ (i32.load (i32.add)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:917
+assert_invalid(
+ () => instantiate(`(module
+ (memory 0)
+ (func $$type-binary-2nd-operand-empty-in-load
+ (i32.load (i32.const 0) (i32.add)) (drop)
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:926
+assert_invalid(
+ () => instantiate(`(module
+ (memory 1)
+ (func $$type-binary-1st-operand-empty-in-store
+ (i32.store (i32.add) (i32.const 1))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:935
+assert_invalid(
+ () => instantiate(`(module
+ (memory 1)
+ (func $$type-binary-2nd-operand-empty-in-store
+ (i32.store (i32.const 1) (i32.add) (i32.const 0))
+ )
+ )`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:948
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.add (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:949
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.and (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:950
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.div_s (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:951
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.div_u (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:952
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.mul (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:953
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.or (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:954
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.rem_s (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:955
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.rem_u (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:956
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.rotl (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:957
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.rotr (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:958
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.shl (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:959
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.shr_s (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:960
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.shr_u (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:961
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.sub (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:962
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.xor (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:963
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.eqz (i64.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:964
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.clz (i64.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:965
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.ctz (i64.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:966
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.popcnt (i64.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:967
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.eq (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:968
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.ge_s (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:969
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.ge_u (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:970
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.gt_s (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:971
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.gt_u (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:972
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.le_s (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:973
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.le_u (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:974
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.lt_s (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:975
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.lt_u (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:976
+assert_invalid(
+ () => instantiate(`(module (func (result i32) (i32.ne (i64.const 0) (f32.const 0))))`),
+ `type mismatch`,
+);
+
+// ./test/core/i32.wast:978
+assert_malformed(
+ () => instantiate(`(func (result i32) (i32.const nan:arithmetic)) `),
+ `unexpected token`,
+);
+
+// ./test/core/i32.wast:982
+assert_malformed(
+ () => instantiate(`(func (result i32) (i32.const nan:canonical)) `),
+ `unexpected token`,
+);