summaryrefslogtreecommitdiff
path: root/test/binaryen.js
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2019-08-13 00:29:26 +0900
committerGitHub <noreply@github.com>2019-08-13 00:29:26 +0900
commite2f49d8227f2b71e4dede5cf4074bb9f65e3d77f (patch)
tree30b132b02824839d1d7718ed32c6b90cc0828151 /test/binaryen.js
parent69ad1e8a8d2e1d395e30230433742f4f5668563b (diff)
downloadbinaryen-e2f49d8227f2b71e4dede5cf4074bb9f65e3d77f.tar.gz
binaryen-e2f49d8227f2b71e4dede5cf4074bb9f65e3d77f.tar.bz2
binaryen-e2f49d8227f2b71e4dede5cf4074bb9f65e3d77f.zip
Add basic exception handling support (#2282)
This adds basic support for exception handling instructions, according to the spec: https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md This PR includes support for: - Binary reading/writing - Wast reading/writing - Stack IR - Validation - binaryen.js + C API - Few IR routines: branch-utils, type-updating, etc - Few passes: just enough to make `wasm-opt -O` pass - Tests This PR does not include support for many optimization passes, fuzzer, or interpreter. They will be follow-up PRs. Try-catch construct is modeled in Binaryen IR in a similar manner to that of if-else: each of try body and catch body will contain a block, which can be omitted if there is only a single instruction. This block will not be emitted in wast or binary, as in if-else. As in if-else, `class Try` contains two expressions each for try body and catch body, and `catch` is not modeled as an instruction. `exnref` value pushed by `catch` is get by `pop` instruction. `br_on_exn` is special: it returns different types of values when taken and not taken. We make `exnref`, the type `br_on_exn` pushes if not taken, as `br_on_exn`'s type.
Diffstat (limited to 'test/binaryen.js')
-rw-r--r--test/binaryen.js/exception-handling.js61
-rw-r--r--test/binaryen.js/exception-handling.js.txt32
-rw-r--r--test/binaryen.js/kitchen-sink.js33
-rw-r--r--test/binaryen.js/kitchen-sink.js.txt3018
4 files changed, 3082 insertions, 62 deletions
diff --git a/test/binaryen.js/exception-handling.js b/test/binaryen.js/exception-handling.js
new file mode 100644
index 000000000..adf67d2fa
--- /dev/null
+++ b/test/binaryen.js/exception-handling.js
@@ -0,0 +1,61 @@
+function assert(x) {
+ if (!x) throw 'error!';
+}
+
+function cleanInfo(info) {
+ var ret = {};
+ for (var x in info) {
+ if (x == 'id' || x == 'type' || x == 'name' || x == 'event') {
+ ret[x] = info[x];
+ }
+ }
+ return ret;
+}
+
+function stringify(expr) {
+ return JSON.stringify(cleanInfo(Binaryen.getExpressionInfo(expr)));
+}
+
+var module = new Binaryen.Module();
+module.setFeatures(Binaryen.Features.ExceptionHandling);
+
+var v = module.addFunctionType("v", Binaryen.none, []);
+var vi = module.addFunctionType("vi", Binaryen.none, [Binaryen.i32]);
+var event_ = module.addEvent("e", 0, vi);
+
+// (try
+// (throw $e (i32.const 0))
+// (catch
+// ;; We don't support multi-value yet. Use locals instead.
+// (local.set 0 (exnref.pop))
+// (drop
+// (block $l (result i32)
+// (rethrow
+// (br_on_exn $l $e (local.get 0))
+// )
+// )
+// )
+// )
+// )
+var throw_ = module.throw("e", [module.i32.const(0)]);
+var br_on_exn = module.br_on_exn("l", "e", module.local.get(0, Binaryen.exnref));
+var rethrow = module.rethrow(br_on_exn);
+var try_ = module.try(
+ throw_,
+ module.block(null, [
+ module.local.set(0, module.exnref.pop()),
+ module.drop(
+ module.block("l", [rethrow], Binaryen.i32)
+ )
+ ]
+ )
+);
+var func = module.addFunction("test", v, [Binaryen.exnref], try_);
+
+console.log(module.emitText());
+assert(module.validate());
+
+console.log("getExpressionInfo(throw) = " + stringify(throw_));
+console.log("getExpressionInfo(br_on_exn) = " + stringify(br_on_exn));
+console.log("getExpressionInfo(rethrow) = " + stringify(rethrow));
+console.log("getExpressionInfo(try) = " + stringify(try_));
diff --git a/test/binaryen.js/exception-handling.js.txt b/test/binaryen.js/exception-handling.js.txt
new file mode 100644
index 000000000..902ac55e6
--- /dev/null
+++ b/test/binaryen.js/exception-handling.js.txt
@@ -0,0 +1,32 @@
+(module
+ (type $v (func))
+ (type $vi (func (param i32)))
+ (event $e (attr 0) (param i32))
+ (func $test (; 0 ;) (type $v)
+ (local $0 exnref)
+ (try
+ (throw $e
+ (i32.const 0)
+ )
+ (catch
+ (local.set $0
+ (exnref.pop)
+ )
+ (drop
+ (block $l (result i32)
+ (rethrow
+ (br_on_exn $l $e
+ (local.get $0)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+)
+
+getExpressionInfo(throw) = {"id":39,"type":7,"event":"e"}
+getExpressionInfo(br_on_exn) = {"id":41,"type":6,"name":"l","event":"e"}
+getExpressionInfo(rethrow) = {"id":40,"type":7}
+getExpressionInfo(try) = {"id":38,"type":0}
diff --git a/test/binaryen.js/kitchen-sink.js b/test/binaryen.js/kitchen-sink.js
index 1fde6222e..163fe8839 100644
--- a/test/binaryen.js/kitchen-sink.js
+++ b/test/binaryen.js/kitchen-sink.js
@@ -111,6 +111,10 @@ function test_ids() {
console.log("DataDropId: " + Binaryen.DataDropId);
console.log("MemoryCopyId: " + Binaryen.MemoryCopyId);
console.log("MemoryFillId: " + Binaryen.MemoryFillId);
+ console.log("TryId: " + Binaryen.TryId);
+ console.log("ThrowId: " + Binaryen.ThrowId);
+ console.log("RethrowId: " + Binaryen.RethrowId);
+ console.log("BrOnExnId: " + Binaryen.BrOnExnId);
console.log("PushId: " + Binaryen.PushId);
console.log("PopId: " + Binaryen.PopId);
}
@@ -121,6 +125,10 @@ function test_core() {
module = new Binaryen.Module();
+ // Create an event
+ var vi = module.addFunctionType("vi", Binaryen.none, [Binaryen.i32]);
+ var event_ = module.addEvent("a-event", 0, vi);
+
// Literals and consts
var constI32 = module.i32.const(1),
@@ -401,6 +409,24 @@ function test_core() {
// Tail Call
module.returnCall("kitchen()sinker", [ makeInt32(13), makeInt64(37, 0), makeFloat32(1.3), makeFloat64(3.7) ], Binaryen.i32),
module.returnCallIndirect(makeInt32(2449), [ makeInt32(13), makeInt64(37, 0), makeFloat32(1.3), makeFloat64(3.7) ], "iiIfF"),
+
+ // Exception handling
+ module.try(
+ module.throw("a-event", [module.i32.const(0)]),
+ module.block(null, [
+ module.local.set(5, module.exnref.pop()),
+ module.drop(
+ module.block("try-block", [
+ module.rethrow(
+ module.br_on_exn("try-block", "a-event",
+ module.local.get(5, Binaryen.exnref)),
+ )
+ ], Binaryen.i32)
+ )
+ ]
+ )
+ ),
+
// Push and pop
module.push(module.i32.pop()),
module.push(module.i64.pop()),
@@ -429,16 +455,12 @@ function test_core() {
var body = module.block("the-body", [ nothing, makeInt32(42) ]);
// Create the function
- var sinker = module.addFunction("kitchen()sinker", iiIfF, [ Binaryen.i32 ], body);
+ var sinker = module.addFunction("kitchen()sinker", iiIfF, [ Binaryen.i32, Binaryen.exnref ], body);
// Create a global
var initExpr = module.i32.const(1);
var global = module.addGlobal("a-global", Binaryen.i32, false, initExpr)
- // Create an event
- var vi = module.addFunctionType("vi", Binaryen.none, [Binaryen.i32]);
- var event_ = module.addEvent("a-event", 0, vi);
-
// Imports
var fiF = module.addFunctionType("fiF", Binaryen.f32, [ Binaryen.i32, Binaryen.f64 ]);
@@ -487,6 +509,7 @@ function test_core() {
var features = Binaryen.Features.All;
module.setFeatures(features);
assert(module.getFeatures() == features);
+ console.log(module.emitText());
// Verify it validates
assert(module.validate());
diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt
index 2dd418806..a1baa5951 100644
--- a/test/binaryen.js/kitchen-sink.js.txt
+++ b/test/binaryen.js/kitchen-sink.js.txt
@@ -52,6 +52,10 @@ MemoryInitId: 32
DataDropId: 33
MemoryCopyId: 34
MemoryFillId: 35
+TryId: 38
+ThrowId: 39
+RethrowId: 40
+BrOnExnId: 41
PushId: 36
PopId: 37
getExpressionInfo={"id":15,"type":3,"op":6}
@@ -64,8 +68,1427 @@ getExpressionInfo(i64.const)={"id":14,"type":2,"value":{"low":6,"high":7}}
getExpressionInfo(f32.const)={"id":14,"type":3,"value":8.5}
getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
(module
+ (type $vi (func (param i32)))
(type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
+ (type $fiF (func (param i32 f64) (result f32)))
+ (type $v (func))
+ (type $4 (func))
+ (import "module" "base" (global $a-global-imp i32))
+ (import "module" "base" (func $an-imported (param i32 f64) (result f32)))
+ (import "module" "base" (event $a-event-imp (attr 0) (param i32)))
+ (memory $0 1 256)
+ (data (i32.const 10) "hello, world")
+ (data passive "I am passive")
+ (table $0 1 funcref)
+ (elem (i32.const 0) "$kitchen()sinker")
+ (global $a-global i32 (i32.const 1))
+ (event $a-event (attr 0) (param i32))
+ (export "kitchen_sinker" (func "$kitchen()sinker"))
+ (export "a-global-exp" (global $a-global))
+ (export "a-event-exp" (event $a-event))
+ (export "mem" (memory $0))
+ (start $starter)
+ (func "$kitchen()sinker" (; 1 ;) (type $iiIfF) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
+ (local $4 i32)
+ (local $5 exnref)
+ (block $the-body (result i32)
+ (block $the-nothing
+ (drop
+ (block $the-value (result i32)
+ (drop
+ (i32.clz
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.ctz
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i32.popcnt
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.neg
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.abs
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.ceil
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.floor
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.trunc
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f32.nearest
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.sqrt
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.eqz
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.extend_i32_s
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.extend_i32_u
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i32.wrap_i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i32.trunc_f32_s
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_f32_s
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_f32_u
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_f32_u
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_f64_s
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_f64_s
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_f64_u
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_f64_u
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_sat_f32_s
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_sat_f32_s
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_sat_f32_u
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_sat_f32_u
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_sat_f64_s
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_sat_f64_s
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_sat_f64_u
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_sat_f64_u
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.reinterpret_f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.reinterpret_f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.convert_i32_s
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_i32_s
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_i32_u
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_i32_u
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_i64_s
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_i64_s
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f32.convert_i64_u
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_i64_u
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.promote_f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f32.demote_f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.reinterpret_i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.reinterpret_i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i8x16.splat
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i16x8.splat
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i32x4.splat
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i64x2.splat
+ (i64.const 1958505087099)
+ )
+ )
+ (drop
+ (f32x4.splat
+ (f32.const 42)
+ )
+ )
+ (drop
+ (f64x2.splat
+ (f64.const 42)
+ )
+ )
+ (drop
+ (v128.not
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.any_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.all_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.any_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.all_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.any_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.all_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.any_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.all_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.abs
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.sqrt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.abs
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.sqrt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.trunc_sat_f32x4_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.trunc_sat_f32x4_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.trunc_sat_f64x2_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.trunc_sat_f64x2_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.convert_i32x4_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.convert_i32x4_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.convert_i64x2_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.convert_i64x2_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32.add
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (f64.sub
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (i32.div_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.div_u
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i64.rem_s
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.rem_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.and
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.or
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.xor
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.shl
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i64.shr_u
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.shr_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.rotl
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.rotr
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (f32.div
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.copysign
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (f32.min
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.max
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (i32.eq
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (f32.ne
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (i32.lt_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.lt_u
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i64.le_s
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.le_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.gt_s
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.gt_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.ge_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.ge_u
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (f32.lt
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.le
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (f64.gt
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (f32.ge
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (i8x16.eq
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.lt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.lt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.gt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.gt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.le_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.le_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.ge_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.ge_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.eq
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.lt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.lt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.gt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.gt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.le_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.le_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.ge_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.ge_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.eq
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.lt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.lt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.gt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.gt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.le_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.le_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.ge_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.ge_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.eq
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.lt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.gt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.le
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.ge
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.ge
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.lt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.gt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.le
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.ge
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ (
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ (
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ (drop
+ (i8x16.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.add_saturate_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.add_saturate_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.sub_saturate_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.sub_saturate_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.add_saturate_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.add_saturate_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.sub_saturate_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.sub_saturate_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.div
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.min
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.max
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.div
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.min
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.max
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.extract_lane_s 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.extract_lane_u 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.extract_lane_s 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.extract_lane_u 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.extract_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.extract_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.extract_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.extract_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i8x16.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i32x4.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i64x2.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i64.const 184683593770)
+ )
+ )
+ (drop
+ (f32x4.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (f32.const 42)
+ )
+ )
+ (drop
+ (f64x2.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (f64.const 42)
+ )
+ )
+ (drop
+ (i8x16.shl
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i8x16.shr_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i8x16.shr_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i16x8.shl
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i16x8.shr_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i16x8.shr_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32x4.shl
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32x4.shr_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32x4.shr_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64x2.shl
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64x2.shr_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64x2.shr_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (v8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (v128.bitselect
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (memory.init 0
+ (i32.const 1024)
+ (i32.const 0)
+ (i32.const 12)
+ )
+ (data.drop 0)
+ (memory.copy
+ (i32.const 2048)
+ (i32.const 1024)
+ (i32.const 12)
+ )
+ (memory.fill
+ (i32.const 0)
+ (i32.const 42)
+ (i32.const 1024)
+ )
+ (block
+ )
+ (if
+ (i32.const 1)
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.const 4)
+ (drop
+ (i32.const 5)
+ )
+ )
+ (drop
+ (loop $in (result i32)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (loop (result i32)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (br_if $the-value
+ (i32.const 1)
+ (i32.const 0)
+ )
+ )
+ (br_if $the-nothing
+ (i32.const 2)
+ )
+ (br $the-value
+ (i32.const 3)
+ )
+ (br $the-nothing)
+ (br_table $the-value $the-value
+ (i32.const 1)
+ (i32.const 0)
+ )
+ (br_table $the-nothing $the-nothing
+ (i32.const 2)
+ )
+ (drop
+ (i32.eqz
+ (call "$kitchen()sinker"
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ )
+ )
+ )
+ (drop
+ (i32.eqz
+ (i32.trunc_f32_s
+ (call $an-imported
+ (i32.const 13)
+ (f64.const 3.7)
+ )
+ )
+ )
+ )
+ (drop
+ (i32.eqz
+ (call_indirect (type $iiIfF)
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ (i32.const 2449)
+ )
+ )
+ )
+ (drop
+ (local.get $0)
+ )
+ (local.set $0
+ (i32.const 101)
+ )
+ (drop
+ (local.tee $0
+ (i32.const 102)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64.load16_s offset=2 align=1
+ (i32.const 8)
+ )
+ )
+ (drop
+ (f32.load
+ (i32.const 2)
+ )
+ )
+ (drop
+ (f64.load offset=2
+ (i32.const 9)
+ )
+ )
+ (i32.store
+ (i32.const 10)
+ (i32.const 11)
+ )
+ (i64.store offset=2 align=4
+ (i32.const 110)
+ (i64.const 111)
+ )
+ (drop
+ (select
+ (i32.const 3)
+ (i32.const 5)
+ (i32.const 1)
+ )
+ )
+ (return
+ (i32.const 1337)
+ )
+ (return_call "$kitchen()sinker"
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ )
+ (return_call_indirect (type $iiIfF)
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ (i32.const 2449)
+ )
+ (try
+ (throw $a-event
+ (i32.const 0)
+ )
+ (catch
+ (local.set $5
+ (exnref.pop)
+ )
+ (drop
+ (block $try-block (result i32)
+ (rethrow
+ (br_on_exn $try-block $a-event
+ (local.get $5)
+ )
+ )
+ )
+ )
+ )
+ )
+ (push
+ (i32.pop)
+ )
+ (push
+ (i64.pop)
+ )
+ (push
+ (f32.pop)
+ )
+ (push
+ (f64.pop)
+ )
+ (push
+ (v128.pop)
+ )
+ (push
+ (exnref.pop)
+ )
+ (nop)
+ (unreachable)
+ )
+ )
+ )
+ (i32.const 42)
+ )
+ )
+ (func $starter (; 2 ;) (type $v)
+ (nop)
+ )
+)
+
+(module
(type $vi (func (param i32)))
+ (type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
(type $fiF (func (param i32 f64) (result f32)))
(type $v (func))
(type $4 (func))
@@ -86,6 +1509,7 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
(start $starter)
(func "$kitchen()sinker" (; 1 ;) (type $iiIfF) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
(local $4 i32)
+ (local $5 exnref)
(block $the-body (result i32)
(block $the-nothing
(drop
@@ -1431,6 +2855,25 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
(f64.const 3.7)
(i32.const 2449)
)
+ (try
+ (throw $a-event
+ (i32.const 0)
+ )
+ (catch
+ (local.set $5
+ (exnref.pop)
+ )
+ (drop
+ (block $try-block (result i32)
+ (rethrow
+ (br_on_exn $try-block $a-event
+ (local.get $5)
+ )
+ )
+ )
+ )
+ )
+ )
(push
(i32.pop)
)
@@ -1990,6 +3433,11 @@ int main() {
RelooperRef the_relooper = NULL;
the_module = BinaryenModuleCreate();
expressions[size_t(NULL)] = BinaryenExpressionRef(NULL);
+ {
+ BinaryenType paramTypes[] = { 1 };
+ functionTypes[0] = BinaryenAddFunctionType(the_module, "vi", 0, paramTypes, 1);
+ }
+ BinaryenAddEvent(the_module, "a-event", 0, functionTypes[0]);
expressions[1] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
expressions[2] = BinaryenConst(the_module, BinaryenLiteralInt64(2));
expressions[3] = BinaryenConst(the_module, BinaryenLiteralFloat32(3.14));
@@ -1998,7 +3446,7 @@ int main() {
expressions[6] = BinaryenConst(the_module, BinaryenLiteralFloat64(NAN));
{
BinaryenType paramTypes[] = { 1, 2, 3, 4 };
- functionTypes[0] = BinaryenAddFunctionType(the_module, "iiIfF", 1, paramTypes, 4);
+ functionTypes[1] = BinaryenAddFunctionType(the_module, "iiIfF", 1, paramTypes, 4);
}
expressions[7] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
expressions[8] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
@@ -3306,20 +4754,40 @@ int main() {
BinaryenExpressionRef operands[] = { expressions[651], expressions[652], expressions[653], expressions[654] };
expressions[655] = BinaryenReturnCallIndirect(the_module, expressions[650], operands, 4, "iiIfF");
}
- expressions[656] = BinaryenPop(the_module, 1);
- expressions[657] = BinaryenPush(the_module, expressions[656]);
- expressions[658] = BinaryenPop(the_module, 2);
- expressions[659] = BinaryenPush(the_module, expressions[658]);
- expressions[660] = BinaryenPop(the_module, 3);
- expressions[661] = BinaryenPush(the_module, expressions[660]);
- expressions[662] = BinaryenPop(the_module, 4);
- expressions[663] = BinaryenPush(the_module, expressions[662]);
- expressions[664] = BinaryenPop(the_module, 5);
- expressions[665] = BinaryenPush(the_module, expressions[664]);
- expressions[666] = BinaryenPop(the_module, 6);
- expressions[667] = BinaryenPush(the_module, expressions[666]);
- expressions[668] = BinaryenNop(the_module);
- expressions[669] = BinaryenUnreachable(the_module);
+ expressions[656] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ {
+ BinaryenExpressionRef operands[] = { expressions[656] };
+ expressions[657] = BinaryenThrow(the_module, "a-event", operands, 1);
+ }
+ expressions[658] = BinaryenPop(the_module, 6);
+ expressions[659] = BinaryenLocalSet(the_module, 5, expressions[658]);
+ expressions[660] = BinaryenLocalGet(the_module, 5, 6);
+ expressions[661] = BinaryenBrOnExn(the_module, "try-block", "a-event", expressions[660]);
+ expressions[662] = BinaryenRethrow(the_module, expressions[661]);
+ {
+ BinaryenExpressionRef children[] = { expressions[662] };
+ expressions[663] = BinaryenBlock(the_module, "try-block", children, 1, 1);
+ }
+ expressions[664] = BinaryenDrop(the_module, expressions[663]);
+ {
+ BinaryenExpressionRef children[] = { expressions[659], expressions[664] };
+ expressions[665] = BinaryenBlock(the_module, NULL, children, 2, 0);
+ }
+ expressions[666] = BinaryenTry(the_module, expressions[657], expressions[665]);
+ expressions[667] = BinaryenPop(the_module, 1);
+ expressions[668] = BinaryenPush(the_module, expressions[667]);
+ expressions[669] = BinaryenPop(the_module, 2);
+ expressions[670] = BinaryenPush(the_module, expressions[669]);
+ expressions[671] = BinaryenPop(the_module, 3);
+ expressions[672] = BinaryenPush(the_module, expressions[671]);
+ expressions[673] = BinaryenPop(the_module, 4);
+ expressions[674] = BinaryenPush(the_module, expressions[673]);
+ expressions[675] = BinaryenPop(the_module, 5);
+ expressions[676] = BinaryenPush(the_module, expressions[675]);
+ expressions[677] = BinaryenPop(the_module, 6);
+ expressions[678] = BinaryenPush(the_module, expressions[677]);
+ expressions[679] = BinaryenNop(the_module);
+ expressions[680] = BinaryenUnreachable(the_module);
BinaryenExpressionGetId(expressions[30]);
BinaryenExpressionGetType(expressions[30]);
BinaryenUnaryGetOp(expressions[30]);
@@ -3330,26 +4798,26 @@ getExpressionInfo={"id":15,"type":3,"op":6}
(f32.const -33.61199951171875)
)
- expressions[670] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
- BinaryenExpressionGetId(expressions[670]);
- BinaryenExpressionGetType(expressions[670]);
- BinaryenConstGetValueI32(expressions[670]);
+ expressions[681] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
+ BinaryenExpressionGetId(expressions[681]);
+ BinaryenExpressionGetType(expressions[681]);
+ BinaryenConstGetValueI32(expressions[681]);
getExpressionInfo(i32.const)={"id":14,"type":1,"value":5}
- expressions[671] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078));
- BinaryenExpressionGetId(expressions[671]);
- BinaryenExpressionGetType(expressions[671]);
- BinaryenConstGetValueI64Low(expressions[671]);
- BinaryenConstGetValueI64High(expressions[671]);
+ expressions[682] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078));
+ BinaryenExpressionGetId(expressions[682]);
+ BinaryenExpressionGetType(expressions[682]);
+ BinaryenConstGetValueI64Low(expressions[682]);
+ BinaryenConstGetValueI64High(expressions[682]);
getExpressionInfo(i64.const)={"id":14,"type":2,"value":{"low":6,"high":7}}
- expressions[672] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5));
- BinaryenExpressionGetId(expressions[672]);
- BinaryenExpressionGetType(expressions[672]);
- BinaryenConstGetValueF32(expressions[672]);
+ expressions[683] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5));
+ BinaryenExpressionGetId(expressions[683]);
+ BinaryenExpressionGetType(expressions[683]);
+ BinaryenConstGetValueF32(expressions[683]);
getExpressionInfo(f32.const)={"id":14,"type":3,"value":8.5}
- expressions[673] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5));
- BinaryenExpressionGetId(expressions[673]);
- BinaryenExpressionGetType(expressions[673]);
- BinaryenConstGetValueF64(expressions[673]);
+ expressions[684] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5));
+ BinaryenExpressionGetId(expressions[684]);
+ BinaryenExpressionGetType(expressions[684]);
+ BinaryenConstGetValueF64(expressions[684]);
getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
{
BinaryenExpressionRef children[] = { expressions[24], expressions[26], expressions[28], expressions[30], expressions[32],
@@ -3392,39 +4860,34 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
expressions[597], expressions[598], expressions[600], expressions[602], expressions[603], expressions[604],
expressions[606], expressions[612], expressions[617], expressions[624], expressions[626], expressions[628],
expressions[631], expressions[633], expressions[635], expressions[637], expressions[639], expressions[640],
- expressions[641], expressions[642], expressions[644], expressions[649], expressions[655], expressions[657],
- expressions[659], expressions[661], expressions[663], expressions[665], expressions[667], expressions[668],
- expressions[669] };
- expressions[674] = BinaryenBlock(the_module, "the-value", children, 252, 0);
+ expressions[641], expressions[642], expressions[644], expressions[649], expressions[655], expressions[666],
+ expressions[668], expressions[670], expressions[672], expressions[674], expressions[676], expressions[678],
+ expressions[679], expressions[680] };
+ expressions[685] = BinaryenBlock(the_module, "the-value", children, 253, 0);
}
- expressions[675] = BinaryenDrop(the_module, expressions[674]);
+ expressions[686] = BinaryenDrop(the_module, expressions[685]);
{
- BinaryenExpressionRef children[] = { expressions[675] };
- expressions[676] = BinaryenBlock(the_module, "the-nothing", children, 1, 0);
+ BinaryenExpressionRef children[] = { expressions[686] };
+ expressions[687] = BinaryenBlock(the_module, "the-nothing", children, 1, 0);
}
- expressions[677] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
+ expressions[688] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
{
- BinaryenExpressionRef children[] = { expressions[676], expressions[677] };
- expressions[678] = BinaryenBlock(the_module, "the-body", children, 2, 0);
+ BinaryenExpressionRef children[] = { expressions[687], expressions[688] };
+ expressions[689] = BinaryenBlock(the_module, "the-body", children, 2, 0);
}
{
- BinaryenType varTypes[] = { 1 };
- functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 1, expressions[678]);
+ BinaryenType varTypes[] = { 1, 6 };
+ functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[1], varTypes, 2, expressions[689]);
}
- expressions[679] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
- globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[679]);
- {
- BinaryenType paramTypes[] = { 1 };
- functionTypes[1] = BinaryenAddFunctionType(the_module, "vi", 0, paramTypes, 1);
- }
- BinaryenAddEvent(the_module, "a-event", 0, functionTypes[1]);
+ expressions[690] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[690]);
{
BinaryenType paramTypes[] = { 1, 4 };
functionTypes[2] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2);
}
BinaryenAddFunctionImport(the_module, "an-imported", "module", "base", functionTypes[2]);
BinaryenAddGlobalImport(the_module, "a-global-imp", "module", "base", 1);
- BinaryenAddEventImport(the_module, "a-event-imp", "module", "base", 0, functionTypes[1]);
+ BinaryenAddEventImport(the_module, "a-event-imp", "module", "base", 0, functionTypes[0]);
exports[0] = BinaryenAddFunctionExport(the_module, "kitchen()sinker", "kitchen_sinker");
exports[1] = BinaryenAddGlobalExport(the_module, "a-global", "a-global-exp");
exports[2] = BinaryenAddEventExport(the_module, "a-event", "a-event-exp");
@@ -3440,18 +4903,19 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
BinaryenFunctionGetResult(functions[0]);
BinaryenFunctionGetNumVars(functions[0]);
BinaryenFunctionGetVar(functions[0], 0);
+ BinaryenFunctionGetVar(functions[0], 1);
BinaryenFunctionGetBody(functions[0]);
{
const char* funcNames[] = { "kitchen()sinker" };
BinaryenSetFunctionTable(the_module, 1, 4294967295, funcNames, 1);
}
- expressions[680] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
+ expressions[691] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
{
const char segment0[] = { 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 };
const char segment1[] = { 73, 32, 97, 109, 32, 112, 97, 115, 115, 105, 118, 101 };
const char* segments[] = { segment0, segment1 };
int8_t segmentPassive[] = { 0, 1 };
- BinaryenExpressionRef segmentOffsets[] = { expressions[680], expressions[0] };
+ BinaryenExpressionRef segmentOffsets[] = { expressions[691], expressions[0] };
BinaryenIndex segmentSizes[] = { 12, 12 };
BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentPassive, segmentOffsets, segmentSizes, 2, 0);
}
@@ -3459,10 +4923,10 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
BinaryenType paramTypes[] = { 0 };
functionTypes[3] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0);
}
- expressions[681] = BinaryenNop(the_module);
+ expressions[692] = BinaryenNop(the_module);
{
BinaryenType varTypes[] = { 0 };
- functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[681]);
+ functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[692]);
}
BinaryenSetStart(the_module, functions[1]);
{
@@ -3472,11 +4936,1431 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
BinaryenModuleAutoDrop(the_module);
BinaryenModuleSetFeatures(the_module, 255);
BinaryenModuleGetFeatures(the_module);
- BinaryenModuleValidate(the_module);
BinaryenModulePrint(the_module);
(module
+ (type $vi (func (param i32)))
(type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
+ (type $fiF (func (param i32 f64) (result f32)))
+ (type $v (func))
+ (type $4 (func))
+ (import "module" "base" (global $a-global-imp i32))
+ (import "module" "base" (func $an-imported (param i32 f64) (result f32)))
+ (import "module" "base" (event $a-event-imp (attr 0) (param i32)))
+ (memory $0 1 256)
+ (data (i32.const 10) "hello, world")
+ (data passive "I am passive")
+ (table $0 1 funcref)
+ (elem (i32.const 0) "$kitchen()sinker")
+ (global $a-global i32 (i32.const 1))
+ (event $a-event (attr 0) (param i32))
+ (export "kitchen_sinker" (func "$kitchen()sinker"))
+ (export "a-global-exp" (global $a-global))
+ (export "a-event-exp" (event $a-event))
+ (export "mem" (memory $0))
+ (start $starter)
+ (func "$kitchen()sinker" (; 1 ;) (type $iiIfF) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
+ (local $4 i32)
+ (local $5 exnref)
+ (block $the-body (result i32)
+ (block $the-nothing
+ (drop
+ (block $the-value (result i32)
+ (drop
+ (i32.clz
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.ctz
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i32.popcnt
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.neg
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.abs
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.ceil
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.floor
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.trunc
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f32.nearest
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.sqrt
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.eqz
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.extend_i32_s
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.extend_i32_u
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i32.wrap_i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i32.trunc_f32_s
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_f32_s
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_f32_u
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_f32_u
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_f64_s
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_f64_s
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_f64_u
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_f64_u
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_sat_f32_s
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_sat_f32_s
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_sat_f32_u
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_sat_f32_u
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_sat_f64_s
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_sat_f64_s
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_sat_f64_u
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_sat_f64_u
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.reinterpret_f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.reinterpret_f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.convert_i32_s
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_i32_s
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_i32_u
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_i32_u
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_i64_s
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_i64_s
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f32.convert_i64_u
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_i64_u
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.promote_f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f32.demote_f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.reinterpret_i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.reinterpret_i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i8x16.splat
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i16x8.splat
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i32x4.splat
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i64x2.splat
+ (i64.const 1958505087099)
+ )
+ )
+ (drop
+ (f32x4.splat
+ (f32.const 42)
+ )
+ )
+ (drop
+ (f64x2.splat
+ (f64.const 42)
+ )
+ )
+ (drop
+ (v128.not
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.any_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.all_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.any_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.all_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.any_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.all_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.any_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.all_true
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.abs
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.sqrt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.abs
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.neg
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.sqrt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.trunc_sat_f32x4_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.trunc_sat_f32x4_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.trunc_sat_f64x2_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.trunc_sat_f64x2_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.convert_i32x4_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.convert_i32x4_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.convert_i64x2_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.convert_i64x2_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32.add
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (f64.sub
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (i32.div_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.div_u
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i64.rem_s
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.rem_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.and
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.or
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.xor
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.shl
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i64.shr_u
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.shr_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.rotl
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.rotr
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (f32.div
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.copysign
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (f32.min
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.max
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (i32.eq
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (f32.ne
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (i32.lt_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.lt_u
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i64.le_s
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.le_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.gt_s
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (i32.gt_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.ge_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.ge_u
+ (i64.const 4294967274)
+ (i64.const 4294967273)
+ )
+ )
+ (drop
+ (f32.lt
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.le
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (f64.gt
+ (f64.const -9005.841)
+ (f64.const -9007.333)
+ )
+ )
+ (drop
+ (f32.ge
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (i8x16.eq
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.lt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.lt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.gt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.gt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.le_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.le_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.ge_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.ge_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.eq
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.lt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.lt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.gt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.gt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.le_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.le_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.ge_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.ge_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.eq
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.lt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.lt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.gt_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.gt_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.le_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.le_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.ge_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.ge_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.eq
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.lt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.gt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.le
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.ge
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.ge
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.ne
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.lt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.gt
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.le
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.ge
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ (
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ (
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ (drop
+ (i8x16.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.add_saturate_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.add_saturate_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.sub_saturate_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.sub_saturate_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.add_saturate_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.add_saturate_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.sub_saturate_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.sub_saturate_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.div
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.min
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.max
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.add
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.sub
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.mul
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.div
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.min
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.max
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.extract_lane_s 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i8x16.extract_lane_u 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.extract_lane_s 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.extract_lane_u 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i32x4.extract_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i64x2.extract_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.extract_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.extract_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (i16x8.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i8x16.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i32x4.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 42)
+ )
+ )
+ (drop
+ (i64x2.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i64.const 184683593770)
+ )
+ )
+ (drop
+ (f32x4.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (f32.const 42)
+ )
+ )
+ (drop
+ (f64x2.replace_lane 1
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (f64.const 42)
+ )
+ )
+ (drop
+ (i8x16.shl
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i8x16.shr_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i8x16.shr_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i16x8.shl
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i16x8.shr_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i16x8.shr_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32x4.shl
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32x4.shr_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32x4.shr_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64x2.shl
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64x2.shr_s
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64x2.shr_u
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (v8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (v128.bitselect
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (memory.init 0
+ (i32.const 1024)
+ (i32.const 0)
+ (i32.const 12)
+ )
+ (data.drop 0)
+ (memory.copy
+ (i32.const 2048)
+ (i32.const 1024)
+ (i32.const 12)
+ )
+ (memory.fill
+ (i32.const 0)
+ (i32.const 42)
+ (i32.const 1024)
+ )
+ (block
+ )
+ (if
+ (i32.const 1)
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.const 4)
+ (drop
+ (i32.const 5)
+ )
+ )
+ (drop
+ (loop $in (result i32)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (loop (result i32)
+ (i32.const 0)
+ )
+ )
+ (drop
+ (br_if $the-value
+ (i32.const 1)
+ (i32.const 0)
+ )
+ )
+ (br_if $the-nothing
+ (i32.const 2)
+ )
+ (br $the-value
+ (i32.const 3)
+ )
+ (br $the-nothing)
+ (br_table $the-value $the-value
+ (i32.const 1)
+ (i32.const 0)
+ )
+ (br_table $the-nothing $the-nothing
+ (i32.const 2)
+ )
+ (drop
+ (i32.eqz
+ (call "$kitchen()sinker"
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ )
+ )
+ )
+ (drop
+ (i32.eqz
+ (i32.trunc_f32_s
+ (call $an-imported
+ (i32.const 13)
+ (f64.const 3.7)
+ )
+ )
+ )
+ )
+ (drop
+ (i32.eqz
+ (call_indirect (type $iiIfF)
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ (i32.const 2449)
+ )
+ )
+ )
+ (drop
+ (local.get $0)
+ )
+ (local.set $0
+ (i32.const 101)
+ )
+ (drop
+ (local.tee $0
+ (i32.const 102)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64.load16_s offset=2 align=1
+ (i32.const 8)
+ )
+ )
+ (drop
+ (f32.load
+ (i32.const 2)
+ )
+ )
+ (drop
+ (f64.load offset=2
+ (i32.const 9)
+ )
+ )
+ (i32.store
+ (i32.const 10)
+ (i32.const 11)
+ )
+ (i64.store offset=2 align=4
+ (i32.const 110)
+ (i64.const 111)
+ )
+ (drop
+ (select
+ (i32.const 3)
+ (i32.const 5)
+ (i32.const 1)
+ )
+ )
+ (return
+ (i32.const 1337)
+ )
+ (return_call "$kitchen()sinker"
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ )
+ (return_call_indirect (type $iiIfF)
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ (i32.const 2449)
+ )
+ (try
+ (throw $a-event
+ (i32.const 0)
+ )
+ (catch
+ (local.set $5
+ (exnref.pop)
+ )
+ (drop
+ (block $try-block (result i32)
+ (rethrow
+ (br_on_exn $try-block $a-event
+ (local.get $5)
+ )
+ )
+ )
+ )
+ )
+ )
+ (push
+ (i32.pop)
+ )
+ (push
+ (i64.pop)
+ )
+ (push
+ (f32.pop)
+ )
+ (push
+ (f64.pop)
+ )
+ (push
+ (v128.pop)
+ )
+ (push
+ (exnref.pop)
+ )
+ (nop)
+ (unreachable)
+ )
+ )
+ )
+ (i32.const 42)
+ )
+ )
+ (func $starter (; 2 ;) (type $v)
+ (nop)
+ )
+)
+
+ BinaryenModuleValidate(the_module);
+ BinaryenModulePrint(the_module);
+(module
(type $vi (func (param i32)))
+ (type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
(type $fiF (func (param i32 f64) (result f32)))
(type $v (func))
(type $4 (func))
@@ -3497,6 +6381,7 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
(start $starter)
(func "$kitchen()sinker" (; 1 ;) (type $iiIfF) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
(local $4 i32)
+ (local $5 exnref)
(block $the-body (result i32)
(block $the-nothing
(drop
@@ -4842,6 +7727,25 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
(f64.const 3.7)
(i32.const 2449)
)
+ (try
+ (throw $a-event
+ (i32.const 0)
+ )
+ (catch
+ (local.set $5
+ (exnref.pop)
+ )
+ (drop
+ (block $try-block (result i32)
+ (rethrow
+ (br_on_exn $try-block $a-event
+ (local.get $5)
+ )
+ )
+ )
+ )
+ )
+ )
(push
(i32.pop)
)